docker复杂操作

容器数据卷

# 容器运行前可以通过-v将本机和容器链接起来,实现数据共享

e:docker run -it --name="centos01" -v /home/centosData:/home centos /bin/bash

具名挂载和匿名挂载

# 具名挂载
docker run -d -P --name nginx01 -v xl_nginx01:/etc/nginx nginx
# 匿名挂载
docker run -d -P --name nginx02 -v /etc/nginx nginx

# 查看数据卷名称
docker volume ls
docker volume inspect xl_nginx01

查看挂载路径,通过容器查看,docker inspect 容器名称(id)
source表示挂载在宿主机上的目录。

在这里插入图片描述

自己创建文件生成镜像,关键字buile,在宿主机上创建一个文件,文件上写上以下内容:

FROM centos
VOLUME ["volume01","volume02"]
CMD echo "-----end------"
CMD /bin/bash

dockerfile01写入以上内容:在运行以下代码

# 生成一个名叫xiaolong/centos且版本号为1.1的镜像
docker build -f ./dockerfile01 -t xiaolong/centos:1.1 .

在这里插入图片描述

容器卷操作:可以将多个容器相互挂载,实现数据联通。关键字是–volume-from

docker run -it --name centos02 --volumes-from centos01 centos:1.0 /bin/bash
# 如何镜像中存在/bin/bash的配置,最后面就不用写了。

dockerfile操作

原理:自定义文件,将一个镜像座位底层,再在这个底层上进行修改,增加或者删除其他环境。

在一个文件中写上以下内容:

FROM centos                             #底层
MAINTAINER xiaolong<240035162@qq.com>   #作者
   
ENV MYPATH /usr/local		 	#设置目录
WORKDIR $MYPATH				#工作目录
  
RUN yum -y install vim			#下载vim
RUN yum -y install net-tools		#下载ifconfig
  
EXPOSE 80				#暴露端口
  
CMD echo $MYPATH			#打印
CMD echo "--------end--------"		#打印
CMD /bin/bash				

构建这个镜像:

docker build -f ./file -t mycentos:1.0 .

运行这个镜像

doucker run -it mycentos:1.0

结果:这个镜像中有vim和ifconfig及centos的一切。

CMD和ENTRYPOINT的区别

CMD只执行最后一条,在运行镜像的时候,上述的镜像会直接运行/bin/bash。如果运行时加上参数,就会替换

NTRYPOINT是追加,比如我run是加上/bin/bash会报找不到/bin/bash/bin/bash的错误。

知识共享许可协议
本作品采用知识共享署名 4.0 国际许可协议进行许可。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值