Dockerfile构建镜像

使用Dockerfile构建镜像

使用Dockerfile去构建镜像是其中的一种方式,接下来我们就介绍一下这个Dockerfile是什么,怎么编辑Dockerfile文件和使用docker构建镜像。

一、Dockerfile 基本语法

Dockerfile语法有两部分组成 注释 和命令+参数

注释使用 #;命令: RUN argument …

# Print "Hello docker!"
RUN echo "Hello docker!"

1、ADD

作用:从源系统的文件系统上复制文件到目标容器的文件系统。若源是一个URL,那该URL的内容将被下载并复制到容器中。

# Usage: ADD [source directory or URL] [destination directory]
ADD /my_app_folder /my_app_folder

2、CMD

和RUN命令类似,CMD可以用于执行特定的命令。和RUN不同的是,这些命令不是在镜像构建过程中执行,而是在镜像构建容器后被调用。

# Usage 1: CMD application "argument", "argument", ..
CMD "echo" "Hello docker!" # 容器运行的时候执行

3、ENTRYPOINT

每个 Dockerfile 中只能有一个 ENTRYPOINT,当指定多个时,只有最后一个起效。ENTRYPOINT 帮助你配置一个容器使之可执行化,如果你结合CMD命令和ENTRYPOINT命令,你可以从CMD命令中移除“application”而仅仅保留参数,参数将传递给ENTRYPOINT命令。

# Usage: ENTRYPOINT application "argument", "argument", ..
# Remember: arguments are optional. They can be provided by CMD
# or during the creation of a container.
ENTRYPOINT echo
# Usage example with CMD:
# Arguments set with CMD can be overridden during *run*
CMD "Hello docker!"
ENTRYPOINT echo

4、ENV

ENV命令用于设置环境变量,以“key=value”的形式存在,在容器内可以被脚本活着程序调用。

# Usage: ENV key value
ENV SERVER_WORKS 4

5、EXPOSE

用来指定端口,使容器内的应用可以通过端口和外界交互。

# Usage: EXPOSE [port]
EXPOSE 8080

6、FROM

从哪个基础镜像构建镜像。

# Usage: FROM [image name]
FROM ubuntu

7、MAINTAINER

用户信息声明

# Usage: MAINTAINER [name]
MAINTAINER authors_name 

7、RUN

# Usage: RUN [command]
RUN aptitude install -y riak

8、USER

用于设置运行容器的UID

# Usage: USER [UID]
USER 751

9、VOLUME

用于访问宿主机上的目录

# Usage: VOLUME ["/dir_1", "/dir_2" ..]
VOLUME ["/my_files"]

10、WORKDIR

用于设置CMD的运行目录

# Usage: WORKDIR /path
WORKDIR ~/

二、使用Dockerfile创建镜像

# Build an image using the Dockerfile at current location
# Example: sudo docker build -t [name] .
sudo docker build -t my_mongodb . 

三、Dockerfile示例

1、创建一个Dockerfile

2、定义文件和它的目的,主要用于明确Dockerfile的目的。

############################################################
# Dockerfile to build MongoDB container images
# Based on Ubuntu
# 说明等信息
############################################################

3、设置基础镜像

# Set the base image to Ubuntu
FROM ubuntu

4、定义作者

# File Author / Maintainer
MAINTAINER Example McAuthor

4、设置命令与参数下载MongoDB

################## BEGIN INSTALLATION ######################
# Install MongoDB Following the Instructions at MongoDB Docs
# Ref: http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/
# Add the package verification key
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
# Add MongoDB to the repository sources list
RUN echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | tee /etc/apt/sources.list.d/mongodb.list
# Update the repository sources list once more
RUN apt-get update
# Install MongoDB package (.deb)
RUN apt-get install -y mongodb-10gen
# Create the default data directory
RUN mkdir -p /data/db
##################### INSTALLATION END #####################

5、设置MongoDB端口

# Expose the default port
EXPOSE 27017
# Default port to execute the entrypoint (MongoDB)
CMD ["--port 27017"]
# Set default container command
ENTRYPOINT usr/bin/mongod

6、构建镜像

docker build -t my_mongodb .
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值