Docker in Docker(dind )构建镜像
Docker in Docker(dind )构建镜像
Docker in Docker 主要解决在docker容器中构建镜像并推送到仓库中
1.拉取docker镜像
注意,推荐使用与docker版本相同的docker-client镜像
查看主机的docker版本号
1 | docker info |
Sever Version
:表示docker server的版本号
1 | docker pull docker:{version} |
1 | # example |
2.启动docker in docker
启动docker in docker 容器时,需要注册,要将 /var/run/docker.sock
映射到容器内的/var/run/docker.sock
,还需要映射一个/workspace
,该目录位置随意 ,目录内的内容为f需要构建镜像的文件,例如Dockerfile等文件。
-it
:表示以前台方式运行
--rm
:表示以支持后删除该容器
-v
:表示目录映射(挂载),格式为:主机目录:容器内目录
--privileged
:表示以特权方式运行
1 | docker run -it --rm \ |
3.容器内构建镜像
容器内执行docker build命令构建镜像并给镜像打上tag(标签)
-t
:表示给要创建的容器打上一个tag()
Registry Mirrors
:表示镜像仓库地址,例如: docker.io或者私有仓库192.168.1.10:1180。私有创建如果修改了默认端口,则需要指定。默认80与443
path
:表示仓库项目目录,例如:/test/did
version
:表示镜像版本号
hostpath
:表示要构建镜像文件的位置,必须存在Dockerfile文件
1 | docker build -t ${Registry Mirrors}/${path}:${version} ${hostpath} |
1 | # example |
4.登录仓库
docker推送镜像时,需要先登录仓库
url
: 表示仓库地址
port
: 如果修改了仓库的默认端口,则需要指定
username
: 表示用户名
password
:表示密码
1 | docker login ${url:port} -u ${username} -p ${passwd} |
1 | # example |
5.推送镜像
构建镜像后存储在本地仓库中,使用docker push
推送到镜像仓库
1 | docker push 192.168.1.10:1180/test/did:v0.2 |
版权归作者所有。如需商业转载,请联系作者授权。对于非商业转载,请注明来源。 作者联系方式:todohuai@qq.com