Py学习  »  docker

是时候Docker: 4 Dockerfile创建镜像容器

锐玩道 • 4 年前 • 466 次点击  
阅读 41

是时候Docker: 4 Dockerfile创建镜像容器

Dockerfile创建镜像

原文再续,就书接上一回。今天我们说说使用Dockerfile创建镜像容器

目录

  1. 是时候Docker: 1 Docker导学
  2. 是时候Docker: 2 安装并取消sudo执行docker
  3. 是时候Docker: 3 Docker小实例
  4. 是时候Docker: 4 Dockerfile创建镜像
  5. 待续。。。

Dockerfile实例

FROM alpine:latest
MAINTAINER sbf
CMD echo 'hello docker'
复制代码

说明

FROM baseimage
MAINTAINER 共享是告诉其他人,是谁写的
CMD 运行命令
复制代码

实际操作

touch Dockerfile
vim Dockerfile

docker build -t hello_docker .      // -t 构建image名  . 当前目录下所有内容都提交给docker产生image
docker images hello_docker          // 查看image 是否生成
docker run hello_docker             // 运行image, 输出内容 hello docker
复制代码

复杂一点的实例

FROM ubuntu
MAINTAINER xbf
RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y nginx
COPY index.html /var/www/html
ENTRYPOINT ["/usr/sbin/nginx", "-g", "daemon off;"]
EXPOSE 80
复制代码
docker build -t test_docker .
docker run -d -p 8080:80 test_docker
复制代码

镜像分层

Dockerfile的每一行都会产生一个分层且只读,比如

当镜像运行时会产生container layer可读可写的新层来保证容器是可以修改。分层的好处在于,相同分层合并有利减低存储

Dockerfile语法小结

语法 说明
FROM 基础镜像
RUN 容器内执行命令
CMD 程序入口,像main方法一样
ENTRYPOINT 如果指定,CMD会变为它的arguments
ADD 可以添加远程文件,如ftp文件,比copy强大
COPY 拷贝文件
WORKDIR 工作目录
MAINTAINER 作者
ENV 设置容器内环境变量
USER 执行命令的用户,一般是非root
VOLUME 挂在卷
EXPOSE 暴露端口

更多内容下回分解

原创不易,如果你觉得我的文章对你有帮助,请点赞鼓励

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46141
 
466 次点击