构建镜像的两种方式,**无论哪种方式,创建新镜像都需要依赖一个已有的标准镜像文件**
1、通过Docker commit 来保存当前容器内容为一个新镜像
$ docker commit container_name new_image_name
2、通过Dockerfile文件构建新镜像
编辑Dockerfile文件
- #FROM必须是第一行,指明要基于哪个镜像进行构建
- FROM daocloud.io/centos:7
- #多行标签
- LABEL com.example.version=“0.0.1”\ com.example.release-date=“2017-05-25”
- #将同Dockerfile文件目录下的文件拷贝到镜像的指定目录下
- COPY shm.jar /usr/local/
- COPY jdk1.8 /usr/local/
- #设置镜像的环境变量
- ENV JAVA_HOME=/usr/local/jdk1.8
- ENV PATH=$JAVA_HOME/bin:$PATH
- #指定容器被运行时,自动执行的命令,方便服务镜像的使用
- CMD /usr/bin/touch /usr/local/shm.log &&\
- java -jar /usr/local/shm.jar &> /usr/local/shm.log &
- #曝光运行该镜像容器的端口
- EXPOSE 9090
构建镜像
# 注意最后的 . 这个点指定Dockerfile所在的当前目录 docker build -t image_name:tag .
运行镜像
docker run -idt –name container_name -p port:port image_name:tag shell
docker run -idt --name mysql -p 3306:3306 local/mysql:1.0 /bin/bash