跳转至

Docker Images

获取镜像

  • 远程下载
  • Copy
  • 自定义DockerFile

UniosFS(联合文件系统)

bootfs

rootfs

docker commit

Bash
1
2
3
docker commit 提交容器成为一个新副本
# 命令与git 原理类似
docker commit -m="提交的描述信息" -a="作者" 容器ID 目标镜像名:[TAG]

模拟自定义部署一个容器

Bash
1
2
3
4
5
6
7
# 启动一个tomcat
docker run -d -p 8080:8080 tomcat:9.0
# 发现这个tomcat没有webapps应用,官方镜像默认webapps没有文件,使用者可以自己部署代码
# 进入容器
docker exec -it ce14ad2df586 /bin/bash
# 将默认的站点复制到webapps,即自定义容器的过程
cp -r webapps.dist/* webapps/    # 此时再次访问容器,可以看的部署的站点

测试提交自定义容器到镜像

Bash
# 提交镜像
docker commit -a="chaic" -m="add webapps site" ce14ad2df586 tomcat01:1.0
# 查看提交的镜像
root@pts/1 # docker images
REPOSITORY               TAG       IMAGE ID       CREATED          SIZE
tomcat01                 1.0       4729db534ef6   18 seconds ago   476MB
tomcat                   9.0       77abd5123450   6 days ago       470MB

# 新提交的自定义容器镜像,比初始大一些
# 此时可以测试新提交的镜像,重启启动一个容器,查看站点信息是否预期
docker run -d -p 8081:8080 tomcat01:1.0

docker save

通常本地镜像做好后,需要共享其他主机使用,除了提交到镜像仓库,还可以导出导入的操作完成

Bash
1
2
3
4
5
6
7
# 导出自定义的镜像
docker image save -o tomcat01.tar.gz tomcat01:1.0

# 解释
docker image save 等同于 docker save
-o  # 输出压缩包
# 后边可以跟多个容器,导出多个容器到一个压缩包

docker load

导入压缩包的镜像

Bash
1
2
3
4
5
docker load -i tomcat01.tar.gz

# 解释
docker load 等同于 docker image load
-i  # 需要导入的压缩包