一、Docker registry
1、简介
Docker registry用来存储docker image的仓库;运行pull push search时,是通过docker daemon与docker registry通信;
有时候试用docker hub这个公共仓库不方便,可以通过registry创建一个本地仓库。
2、运行registry
docker run -d -p 5000:5000 -v ${PWD}/registry:/var/lib/registry --restart always --name registry registry:2.7.1
3、演示
docker pull nginx:1.18.0
docker images|grep nginx
docker images|findstr nginx
docker tag nginx:1.18.0 192.168.**.***:5000/nginx:1.18.0
docker push 192.168.**.***:5000/nginx:1.18.0
docker pull 192.168.**.***:5000/nginx:1.18.0
二、Dockerfile
1、简介
Dockerfile是由一些列指令和参数构成的脚本,一个Dockerfile包含了构建整个镜像的完整指令。
通过docker build执行Dockerfile中的一系列指令自动构建镜像。
//基础镜像,FROM必须是Dockerfile的首个命令
FROM
//为镜像生成元数据标签
LABEL
//指定运行容器时的用户名或UID,后续RUN也会使用指定用户
USER
//RUN是Docker执行命令的核心部分
RUN
//设置CMD指明的命令的运行目录,为后续的RUN、ADD指令配置工作目录
WORKDIR
//容器启动的环境变量
ENV
//构建环境的环境变量
ARG
//复制文件
COPY
//容器运行时执行的默认命令
CMD
//指定容器的入口
ENTRYPOINT
//容器健康状态检查
HEALTHCHECK
2、Dockerfile
使用Dockerfile从官方的nginx构建一个自己的nginx容器,添加容器健康检查;
3、演示
docker build -t n:1 .
三、docker镜像构建
1、简介
需要制作自己的项目镜像,一般通过docker commit和dockerfile两种方式制作镜像。
2、Docker commit命令
一般用做从一个运行状态的容器来创建一个新的镜像。
默认commit镜像,对外不可解释,不方便排查问题,可维护性差。
3、Docker build命令--推荐dockerfile
//忽略文件
.dockerignore
//指定文件
docker build -f
//添加标签
docker build -t
//不使用缓存
docker build --no-cache
//构建时变量
docker build --build-arg
//ARG指令变量