容器数据卷
# 容器运行前可以通过-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 国际许可协议进行许可。