- 容器数据卷
- 概念
- 使用数据卷
- 具名和匿名挂载
- 数据卷容器
- DockerFile
- 基础知识
- 基础命令
- 创建DockerFile实例
- 实战:Tomcat镜像
- 发布镜像
容器间数据共享
使用数据卷方式一
- 使用命令挂载
docker run -it -v /home/ceshi:/home centos /bin/bash //可映射多个
- 查看挂载信息
docker inspect 容器ID "Mounts": [ --挂载卷 { "Type": "bind", "Source": "/home/ceshi", // 主机内部地址 "Destination": "/home", //dokcer容器内的地址 "Mode": "", "RW": true, "Propagation": "rprivate" } ],具名和匿名挂载
- 匿名挂载
docker run -d -P --name nginx01 -v /etc/nginx nginx //查看所有的volume的情况 docker volume ls
//默认存放路径 不需要指定主机的挂载路径,会自动设定一个 /var/lib/docker/volumes/
- 具名挂载
docker run -d -P --name nginx02 -v juming-nginx:/ect/nginx nginx
3.区别
-v 容器内路径 #匿名挂载 -v 卷名:容器内路径 #具名挂载 -v 宿主机路径:容器内路径 #指定路径挂载
4.拓展
docker run -d -P --name nginx02 -v juming-nginx:/ect/nginx:ro nginx ro : 只读 rw: 可读可写
方式二 :使用Dockerfile脚本挂载
VOLUME ["volume01","volume02"]数据卷容器
多个容器间同步,实现数据共享, 相互拷贝,删除一个容器,数据不会被删除
docker run -it --name docker02 --volumes-from docker01 镜像名称:[tag] 例子 docker run -d -p 3310:3306 -v /etc/mysql/conf.d -v /var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7 docker run -d -p 3310:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql02 --volumes-from mysql01 mysql:5.7DockerFile 基础知识
1.每个保留关键词(指令)都必须是大写 2.执行从上到下执行 3.#表示注释 4.每个指令都会创建并提交一个新的镜像层。基础命令
FROM #基础镜像,一切从这里开始构建 MAINTAINER #镜像是谁写的,姓名+邮箱 RUN #镜像构建的时候需要运行的命令 ADD #步骤 WORKDIR #镜像的工作目录 VOLUME #挂载的目录 EXPOST #保留的端口配置 CMD #指定这个容器启动时要运行的命令,只有最后一个会生效,可被替代 ENTRYPOINT #指定这个容器启动时要运行的命令,可以追加命令 例如 CMD ["ls","a"] docker run 镜像ID ls -al ENTRYPOINT ["ls","a"] docker run 镜像ID l onBUILD #当构建一个被继承 DockerFile这个时候就会运行ONBUILD的指令,触发指令 COPY #类似ADD,将文件拷贝到镜像中 ENV #构建的时候设置环境变量创建DockerFile实例
创建一个自己的centos
1.编写dockerFile
FROM centos MAINTAINER sunENV MYPATH /user/local WORKDIR $MYPATH RUN yum -y install vim RUN yum -y install net-tools EXPOSE 80 CMD echo $MYPATH CMD echo "-----end ------" CMD /bin/bash
2.构建镜像
docker build -f dockerFile的文件路径 -t 镜像名:[tag] 生成目录 例: [root@localhost home]# docker build -f mydockerFile-centos -t mycentos:1.2 . [root@localhost home]# docker run -it mycentos:1.2 [root@b0ac9f6d73e5 local]# pwd /usr/local #当前工作目录
3.查看镜像构建步骤
docker history 镜像ID实战:Tomcat镜像
- 准备镜像文件tomcat压缩包,jdk压缩包。
- 编写dockerfile文件,官方命令Dockerfile,build会自动寻找这个文件,就不需要-f指定了
FROM centos MAINTAINER sun<1234455@qq.com> COPY readme.txt /usr/local/readme.txt ADD jdk-8u11-linux-x64.tar.gz /usr/local/ #会自动解压 ADD apache-tomcat-9.0.22.tar.gz /usr/local/ RUN yum -y install vim ENV MYPATH /usr/local WORKDIR $MYPATH ENV JAVA_HOME /usr/local/jdk1.8.0_11 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.22 ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.22 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin EXPOSE 8080 CMD /usr/local/apache-tomcat-9.0.22/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.22/bin/logs/catalina.out
- 构建镜像
docker bulid -t diytomcat .
- 启动运行镜像
docker run -d -p 9090:8080 --name mytomcat -v /home/work/build/tomcat/text:/usr/local/apache-tomcat-9.0.22/webapps/test -v /home/work/build/tomcat/tomcatlogs/:/usr/local/apache-tomcat-9.0.22/logs diytomcat发布镜像
- 登录
docker login
- 提交镜像
docker pull 镜像名称:[tagz]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)