docker

docker 是开发人员和系统管理人员使用容器开发,部署和运行应用程序的平台。
  • 灵活:即时最复杂的应用也可以集装箱化
  • 轻量级:容器利用并共享主机内核
  • 可互换:可以即时部署更新和升级
  • 便携式:可以在本地构建,部署到云,并在任何地方运行
  • 可扩展:可以增加并自动分发容器副本
  • 可以垂直和即时堆叠服务
docker ps
docker info
docker run hello-world
docker image ls
docker container ls -a
Dockerfile
Dockerfile 语法由两部分构成,注视和命令 + 参数

例如:

# Print "Hello docker !"
Run echo "Hello docker !"
ADD

ADD有两个参数,源和目标。它的基本作用是从源系统的文件系统复制文件到目标容器的文件系统。如果源是一个url,那该url的内容将被下载并复制到容器中。

例如:

Usage: ADD [source directory]
ADD /my_app_folder /my_app_folder
CMD

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

例如:

# Usage 1: CMD application "argument", "argument", ..
CMD "echo" "Hello docker !"
ENTRYPOINT

配置容器启动后执行的命令,并且不可被docker run 提供的参数覆盖。
每个Dockerfile 中只能有一个ENTRYPOINT,当指定多个时,只有最后一个生效。
ENTRYPOINT 帮助你配置一个容器使之可执行化,如果你结合CMD命令和ENTRYPOINT命令,你可以从CMD命令中移除"application"而仅仅保留参数,参数将传递给ENTRYPOINT命令。

ENV

ENV命令用于设置环境变量。这些变量以"key=value"的形式存在,并可以在容器内被脚步或者程序调用。这个机制给在容器中运行的应用带来了极大的遍历。

# Usage: ENV key value
ENV SERVER_WORKS 4
EXPOSE

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

# Usage: EXPOSE [port]
EXPOSE 8080
FROM

FROM 可能是最重要的Dockerfile命令。该命令定义了使用哪个基础镜像启动构建流程。基础镜像可以为任意镜像。如果基础镜像没有被发现,Docker将试图从Docker image index来查找该镜像。FROM命令必须为Dockerfile的首个命令。

# Usage: FROM [image name]
FROM ubuntu
MAINTAINER

声明作者,建议放到FROM后面

# Usage: MAINTAINER [name]
MAINTAINER authors_name
RUN

RUN命令是Dockerfile执行命令的核心部分。它接受命令作为参数并用于创建镜像。

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

USER命令用于设置容器的UID

# Usage: USER [UID]
USER 751 

你可能感兴趣的:(docker)