Docker基础

Docker安装(Linux版)

前提是已配置完yum源

安装yum工具命令

1
2
yum install -y yum-utils device-mapper-persistent-data lvm2

更换镜像源

下面更换的为 阿里镜像源

1
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装Docker

命令如下

1
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Docker的基础命令

启动Docker

1
systemctl start docker

停止Docker

1
systemctl stop docker

重启

1
systemctl restart docker

设置开机自启

1
systemctl enable docker

执行docker ps命令,如果不报错,说明安装启动成功

1
docker ps

Docker配置镜像加速

1.创建deamon.json文件(命令如下)

1
vi /etc/docker/daemon.json

在里面添加如下内容(建议先学一下linux的基础命令)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"registry-mirrors": [
"https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"
]
}

添加完记得用命令重启一下docker(执行以下命令)

1
2
systemctl daemon-reload 
systemctl restart docker

Docker常用命令

1
docker run -p 3306:3306 --name mysql8 -e MYSQL_ROOT_PASSWORD=Abc@123 -d mysql:8.0.24
符号 描述
docker run 创建并运行一个容器
-d 后台运行
-p 3306:3306 端口映射 <宿主机端口>:<容器端口>
-e MYSQL_ROOT_PASSWORD=Abc@123 环境变量 将mysql的root的密码设置为 Abc@123
–name 给容器命名
-v 数据卷(本地目录):容器内目录 挂载数据卷
–network 网络名 连接到对应网络

查看所有已下载镜像命令

1
docker images 

查看所有正在运行的容器

1
docker ps

查看所有容器

1
docker ps -a
命令 描述
docker pull 内容 从镜像源拉取一个镜像
docker rmi 镜像名 删除对应本地的镜像
docker rm 容器名 删除容器(容器需要先停止)
docker rm -f 容器名 强制删除容器
docker start 容器名 启动一个已暂停的容器
docker stop 容器名 暂停一个在运行中的容器
docker save -o 文件名 镜像名 保存一个镜像
docker load -i 文件名 加载一个本地的镜像文件
docker logs -f 容器名 查看容器日志(-f可加可不加,加的效果是实时打印日志)
docker exec -it 容器名 bash 进入容器
docker volume ls 查询数据卷
docker volume inspect 数据卷名 查看数据卷详细信息
docker inspect 容器名 查看容器详细信息

(例)
保存nginx镜像 名为nginx.tar

1
docker save -o nginx.tar nginx:latest

读取nginx镜像

1
docker load -i nginx.tar

Dockerfile

指令 说明
FROM 指定基础镜像
ENV 设置环境变量,可在后面指令使用
COPY 拷贝本地文件到镜像的指定目录
RUN 执行Linux的shell命令,一般是安装过程的命令
EXPOSE 指定容器运行时监听的端口,是给镜像使用者看的
ENTRYPOINT 镜像中应用的启动命令,容器运行时调用

创建基础镜像
(如果你没对应的镜像与文件执行一定失败)(所有不用管)

1
2
3
4
5
6
7
8
9
10
# 基础镜像
FROM openjdk:11.0-jre-buster
# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 拷贝jar包
COPY docker-demo.jar /app.jar
# 入口
ENTRYPOINT ["java", "-jar", "/app.jar"]

docker构建镜像代码

1
docker build -t 镜像名:版本 .

例如:

1
docker build -t docker-demo:1.0 .

Docker容器网络

命令 说明
docker network create 创建一个网络
docker network ls 查看所有网络
docker network rm 删除指定网络
docker network prune 清除未使用的网络
docker network connect 使指定容器连接加入某网络
docker network disconnect 使指定容器连接离开某网络
docker network inspect 查看网络详细信息