docker学习dockerFile编写(二)

镜像 
联合文件系统:分层,轻量级高性能的联合文件系统,对文件系统的修改作为一次提交来一层层叠加
加载原理:boots内核部分公用,硬件部分用宿主机的,roots不一样
bootfs docker 镜像 最底层,包含boot加载器和内核


docker run -it -p 8888:8080 tomcat   8888虚拟机端口,8080容器端口

docker run -it -P tomcat   随机分配对外暴露的端口,

docker commit  -a "lws" -m "tomcat lws" 容器id lws/tomcat:1.2

docker run -it -d -p 7777:8080 tomcat

容器数据卷 持久化容器里的数据
docker 容器数据卷
docker copy  
docker run -it -v  镜像名或id     宿主机绝对路径:容器内目录  --privileged  容器名 相当于共享目录 ,关闭容器启动容器(注意容器id是同一个)后仍可以同步
docker run -it -v  镜像名或id     宿主机绝对路径:容器内目录:ro   相当于readonly只读
docker inspect  详细信息中valumeRW 为True 代表 可以读写共享
docker 容器设置权限

设置容器券继承与相互共享
docker run -it --name docker2 --volume-from docker1 容器名


dockerFile:对于镜像的源码的描述文件

1.编写文件
FROM  centos
VOLUME ["数据卷1","数据卷2"]  (默认主机生成两个数据卷存储)
CMD echo "finished"
CMD /bin/bash

2.build 构建镜像
docker build -f /dockerFile  lws/centos:1.1
docker images

3.run 镜像


关键字定义
FROM               scratch 源镜像
MAINTAINER                维护镜像的姓名和邮箱地址
RUN                        容器构建所需要的命令
EXPOSE                   容器对外暴露的端口
WORKDIR                   创建容器后,终端默认登录建立的工作目录
ENV                       构建镜像中设置变量
ADD                       宿主机目录下的文件拷贝进镜像且add命令自动处理URL和解压tar压缩包
COPY                       拷贝宿主机文件到镜像容器中
VOLUME                  数据卷
CMD                        启动时要运行的命令,可有多个CMD命令,但是会被docker run后面的参数替换掉                       
ENTRYPOINT                启动时要运行的命令 ,            但是会被docker run后面的参数追加
ONBUILD                    子镜像



示例1:基础版centos镜像中没有vim编辑器,ifconfig命令,默认路径为根目录 "/"
eg:
FROM centos
MAINTAINER liws<XXX@163.com>
ENV myPath /tmp
WORKDIR ${myPath}
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD /echo/${myPath}
CMD /bin/bash

docker build -f /dockerFile -t lws/centos:1.2
docker run -it 镜像id或镜像名

 

posted @ 2019-07-12 14:48  稳不住  阅读(278)  评论(0)    收藏  举报