乐趣区

关于docker:Docker-实践使用-Dockerfile-构建自己的-centos

Dockerfile 是用来构建 docker 镜像的形容文件。

  • 每个指令必须都是大写字母;
  • 指令从上到下程序执行;
  • 应用 # 号作为正文;
  • 每个指令多会创立一个新的层并提交;

编写 Dockerfile 文件

vim Dockerfile
# 镜像应用的根底镜像
FROM centos

# 指明镜像的作者
MAINTAINER wu<wuyuanhui@qq.com>

# 构建时设置环境变量
ENV MYPATH /usr/local

# 镜像的工作目录,启动容器后进入的目录
WORKDIR $MYPATH

# 镜像构建时须要运行的命令
RUN yum -y install vim
RUN yum -y install net-tools

# 增加压缩包,会主动解压
ADD apache-tomcat-xxx.tar.gz /usr/local/

# 相似 ADD 指令,将文件拷贝到镜像中
COPY readme.txt /usr/local/readme.txt

# 指定对外的裸露端口
EXPOSE 80

# 匿名挂载数据卷
VOLUME ["volume01","volume02"]

# 容器启动时须要运行的命令,多个 CMD 命令只有最初一个会失效
# CMD 中的命令能够被 docker run 的命令齐全代替
CMD echo $MYPATH
CMD ["ls","-a"]

# 容器启动时须要运行的命令,能够被用于追加命令
# ENTRYPOINT ["ls","-a"]

# 输入一行内容
CMD echo "---END---"

# 进入控制台
CMD /bin/bash

应用 Dockerfile 构建镜像

# 构建镜像
# -f 指定应用的 Dockerfile 文件,-t 指定生成镜像的版本,. 镜像放在当前目录
docker build -f /home/Dockerfile -t my_centos:1.0 .

# 查看所有镜像
docker images

# 运行容器,默认会去找最新版,所以须要指定版本
docker run -it --name my_centos01 my_centos:1.0 /bin/bash

pwd
ifconfig
vim test.txt

# 查看运行容器时主动挂载的数据卷 volume01, volume02
ls -l
exit
# 查看镜像构建历史
docker history image_id

# 查看容器详情和数据卷挂载信息
docker inspect my_centos01
退出移动版