COMMIT

 

commit镜像

commit镜像:可以将修改过的容器重新打包成一个镜像,下次使用时,直接使用这个镜像即可。

docker commit 提交容器成为一个新的副本

docker commit -m="提交的描述信息" -a="作者" 容器ID 目标镜像名:[TAG]

可以用docker images查看到提交的镜像

 

容器数据卷

docker理念

将应用和环境打包成一个镜像

如果数据都在容器中,那么我们删除容器,数据就会丢失。需求:数据可以持久化,将数据存储在本地!

容器之间可以有一个数据共享的技术!Docker容器中产生的数据,同步到本地!

这就是卷技术!!!目录的挂载,将我们容器内的目录挂载到Linux上面!!!

总结:容器的持久化和同步操作!容器间也是可以数据共享的!

 

使用数据卷

方式一:直接使用命令来挂载 -v

docker run -it -v 主机目录:容器内目录
# 调试
zza@zza:~$ docker run -it -v /home/ceshi:/home ubuntu:16.04 /bin/bash

# 启动起来的时候我们可以通过   docker inspect 容器id   来查看挂载是否成功

可以在挂载的文件夹里创建一个文件来测试是否真的挂载成功。

   

 好处:以后修改只需要在本地进行修改即可,容器内会自动同步!

 

具名挂载和匿名挂载

1.匿名挂载: -v 容器内路径

docker run -d -P --name ubuntu01 -v /etc/ubuntu ubuntu:16.04

查看所有volume的情况

docker volume ls

匿名挂载就是在 -v 只写了容器内的路径,没有写容器外的路径!

 

2.具名挂载: -v 卷名:容器内路径

docker run -d -P --name ubuntu02 -v juming-ubuntu:/etc/ubuntu ubuntu:16.04

查看所有volume的情况

docker volume ls

可以查看卷的具体信息

docker volume inspect juming-ubuntu

所有的docker容器内的卷,没有指定目录的情况下都是在 /var/lib/docker/volumes/xxxx/_data

我们通过具名挂载可以方便的找到我们的一个卷,大多数情况使用具名挂载!

 

# 如何确定是具名挂载还是匿名挂载,还是指定路径挂载!
-v 容器内路径                       # 匿名挂载
-v 卷名:容器内路径               # 具名挂载
-v /宿主机路径:容器内路径   # 指定路径挂载

 

扩展:

# 通过 -v 容器内路径:ro rw 改变读取权限
ro readonly # 只读
rw readwrite # 可读可写

# 一旦这个设置了容器权限,容器对我们挂载出来的内容就有了限定
docker run -d -P --name ubuntu02 -v juming-ubuntu:/etc/ubuntu:ro ubuntu:16.04
docker run -d -P --name ubuntu02 -v juming-ubuntu:/etc/ubuntu:rw ubuntu:16.04

# ro 只要看到ro就说明这个路径只能通过宿主机来操作,容器内部是无法按操作的!

 

Dockerfile

 

posted @ 2020-12-22 16:40  木芯子  阅读(321)  评论(0编辑  收藏  举报