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
停止Docker
重启
1
| systemctl restart docker
|
设置开机自启
执行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 网络名 |
连接到对应网络 |
查看所有已下载镜像命令
查看所有正在运行的容器
查看所有容器
命令 |
描述 |
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 |
查看网络详细信息 |