docker(四):docker指定port运行、commit、数据卷(初解)、DockerFile

继:https://blog.csdn.net/ak739105231/article/details/105835836

一、docker指定port运行tomcat容器

docker run 的参数说明:点击

-p:指定端口:docker run -p 宿主机port:docker端口 tomcat

-P随机分配端口

docker run -d -p 8888:8080 tomcat

如果是使用-P,就是随机分配宿主机端口:

二、commit打包镜像

#格式:
docker commit -a='打包者' -m='修改内容描述' 容器ID 命名空间/镜像名:tag
docker commit -a='ldh' -m='tomcat with out docs by test' b4a4e5f5893b aiguigu/mytomcat:6.6.6

commit后,docker images查看本地镜像,就有了刚刚打包的镜像了;

三、数据卷

添加数据卷的方式:1:run镜像时,直接命令添加;2.DockerFile添加

上面解说的commit提交镜像,实现了数据的传递,可以保留数据;那么如何实现宿主机与docker容器之间的数据共享呢?

数据卷,就现身了。

1.run镜像时,直接命令添加数据卷

在运行镜像的时候,添加-v参数,实现宿主机与容器间两个文件共享数据:

docker run -it -v /宿主机绝对目录:/容器内目录 镜像名
举例:
docker run -it -v /dataVolumeHost:/dataVolumeContainer centos

上面截图中说错了一点,宿主机里面数据卷的文件是不会覆盖的;这就可以实现【宿主机一个目录与多个容器数据共享】

下面说明一下数据卷的体现:

 docker inspect  容器id  #查看容器详情点击:inspect,里面可以看到数据卷的信息;

数据卷效果举例:

  • 在dataVolumeHost上添加test001.txt  ————》dataVolumeContainer目录下有么?  有!
  • 在dataVolumeContainer上添加test002.txt  ————》dataVolumeHost目录下有么?  有!
  • 当容器关闭后(没有删除),宿主机对数据卷做得更改,在容器重启(注意:是重启容器,不是重新run镜像)后,是否更新?是!

可以看出上面的数据卷是有rw权限的;其实在运行的时候,可以指定只读(ro)权限;【ro:readonly】

docker run -it -v /宿主机绝对目录:/容器内目录 镜像名
举例:
docker run -it -v /dataVolumeHost:/dataVolumeContainer:ro centos

使用docker inspect 容器id  查看详情后(如下图);在容器中更改该目录数据也不可操作;

2.DockerFile添加数据卷

2.1 docker build 构建生成镜像文件

在宿主机/跟目录下,创建mydocker文件夹;在该文件夹下,创建Dockerfile文件;文件概要内容:

#volume test
FROM centos
VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
CMD echo "finished,————————————————————————————————————————》success1"
CMD /bin/bash

可以看出,容器内有两个数据卷分别是dataVolumeContainer1、dataVolumeContainer2

使用 docker build 将上面的Dockerfile打包为镜像文件;

docker build -f /mydocker/Dockfile -t test/centos .
#注意最后有一个点;

运行上面的test/centos镜像实例化容器;在宿主机上:docker inspect 容器id

2.2 数据卷容器

#docker run -it --volume-from 容器id/name 镜像名称
docker run -it --volume-from 4d402bbe6e16 test/centos

不管数据卷容器通过--volume-from 容器id    继承多少次;这个数据卷里面的数据对所有的容器都是共享的;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冷凝娇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值