docker 是⼀个⽤ Go 语⾔实现的开源项⽬,可以让我们⽅便的创建和使⽤容器, docker 将程序以及
程序所有的依赖都打包到 docker container ,这样你的程序可以在任何环境都会有⼀致的表现,程序的表现只跟容器有关系,跟容器放在哪个操作系统没有关系。
如何使用docker
在 dockerfile (⽤来构建 docker 镜像的构建⽂件)中指定需要哪些程序、依赖什么样的
配置,之后把 dockerfile 交给 " 编译器 " docker 进⾏ " 编译 " ,也就是 docker build 命令,
⽣成的可执⾏程序就是 image ,之后就可以运⾏这个 image 了,这就是 docker run 命
令, image 运⾏起来后就是 docker container 。
docker指令

镜像仓库
docker pull:拉取镜像
docker push:推送镜像到仓库
docker logs:查看容器日志
docker exec:查看运行中的容器
本地镜像管理
docker save:导出镜像为文件
docker load:从文件导入镜像
docker images:列出本地镜像
docker rmi:删除本地镜像
docker run:创建并启动镜像
容器管理
docker stop:停止运行中的容器
docker start:启动停止的容器
docker ps:查看容器状态
docker rm:删除容器
Docker构建过程
Docker安装
查看系统内核
uname -r 4.18.0-80.11.2.el8_0.x86_64
yum更新到最新
sudo yum -y update
更新gcc:
yum -y install gcc
yum -y install gcc-c++
安装docker依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
设置yum源
阿里云 (推荐)
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
清华大学源 (推荐)
sudo yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
更新yum软件包索引
yum makecache fast
查看仓库的docker版本
yum list docker-ce --showduplicates | sort -r
安装docker
yum -y install docker-ce docker-ce-cli containerd.io
启动docker并添加到自动开机
sudo systemctl start docker
systemctl enable docker
systemctl restart docker
暂停docker
systemctl stop docker
查看docker版本
docker --version
测试
ps -ef|grep docker
docker version
卸载docker
systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
docker常用指令
docker --help #Docker帮助
docker --version #查看Docker版本
docker search <image> #搜索镜像文件,如:docker search mysql
docker pull <image> #拉取镜像文件, 如:docker pull mysql
docker images #查看已经拉取下来的所以镜像文件
docker rmi <image> #删除指定镜像文件
docker run --name <name> -p 80:8080 -d <image> #发布指定镜像文件
docker ps #查看正在运行的所有镜像
docker ps -a #查看所有发布的镜像
docker rm <image> #删除执行已发布的镜像
Dockerfile
在Docker中构建镜像最常用的方式,就是使用Dockerfile。Dockerfile是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。官方文档:https://docs.docker.com/engine/reference/builder
dockerfile常用指令
FROM #当前镜像基于那个
MAINTAINER # 指明镜像维护者及其联系方式
LABEL # 镜像指定标签
RUN # 构建镜像时运行的shell
ADD ...# 拷贝文件或目录到镜像,src 可以是一个本地文件,还可以是一个url。然后自动下载和解压
COPY ...# 拷贝文件或目录到镜像,不支持自动下载和解压
EXPOSE [/...] # 暴露容器运行时的监听端口给外部,可以指定端口是监听 TCP 还是 UDP,如果未指定协议,则默认为 TCP
ENV=...# 设置容器内的环境变量
CMD ["executable","param1","param2"] # 启动容器时执行的Shell命令。在Dockerfile中只能有一条CMD指令。如果设置了多条CMD,只有最后一条会生效
ENTRYPOINT ["executable", "param1", "param2"] # 启动容器时执行的 Shell 命令,同 CMD 类似,不会被 docker run 命令行指定的参数所覆盖,如果设置了多条ENTRYPOINT,只有最后一条会生效
WORKDIR param # 为 RUN、CMD、ENTRYPOINT 以及 COPY 和 AND 设置工作目录
VOLUME ["param"] #指定容器挂载点到宿主机自动生成的目录或其他容器。