felix-cao / Blog

A little progress a day makes you a big success!
31 stars 4 forks source link

Docker镜像创建之Dockerfile的创建 #65

Open felix-cao opened 6 years ago

felix-cao commented 6 years ago

  之前有几篇关于Docker入门基础的文章,本文的重点是Dockerfile。

Docker 简介及安装 基于Docker搭建Nginx服务器 基于Docker搭建Jenkins环境

  在 基于Docker搭建Nginx服务器 基于Docker搭建Jenkins环境 这两篇文章中是利用docker pull 从官方拉取一个镜像,然后基于这个镜像利用命令docker run 创建一个容器。但是面对复杂的应用,最佳的方案就是使用Dockerfile, Dockerfile是为快速构建docker image而设计的, 就像jenkins有jenkinsfile一样。

  Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令。Docker程序将这些Dockerfile指令翻译真正的Linux命令。Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefile。Docker程序将读取Dockerfile,根据指令生成定制的image。相比image这种黑盒子,Dockerfile这种显而易见的脚本更容易被使用者接受,它明确的表明image是怎么产生的。有了Dockerfile,当我们需要定制自己额外的需求时,只需在Dockerfile上添加或者修改指令,重新生成image即可,省去了敲命令的麻烦。

Dockerfile文件结构(四个部分)

  1. 基础镜像:以哪个镜像作为基础进行制作,用法是FROM 基础镜像名称
  2. 维护者信息:需要写下该Dockerfile编写人的姓名或邮箱,用法是MANITAINER 名字/邮箱
  3. 镜像操作命令:对基础镜像要进行的改造命令,比如安装新的软件,进行哪些特殊配置等,常见的是RUN 命令
  4. 容器启动命令:当基于该镜像的容器启动时需要执行哪些命令,常见的是CMD 命令或ENTRYPOINT
# Version 0.1
FROM centos:7.2.1511

MAINTAINER zoncao@cisco.com
RUN yum install git -y
RUN yum install wget -y
RUN wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo
RUN curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -
RUN yum install yarn -y

docker build -t atlas-build .

felix-cao commented 4 years ago

Docker Compose

Docker Compose 是一个用来定义和运行复杂应用的 Docker 工具。 使用 Docker Compose 不再需要使用 shell 脚本来启动容器。(通过 docker-compose.yml 配置)

curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

https://www.cnblogs.com/morang/p/9501223.html