公司项目都包含 Dockerfile的文件,打开后都是一些没接触过的命令行
深入了解之后才知道是 docker 的指令(Instruction)
Dockerfile文件格式如下:
## Dockerfile文件格式
# This dockerfile uses the ubuntu image
# VERSION 2 - EDITION 1
# Author: docker_user
# Command format: Instruction [arguments / command] ..
# 1、第一行必须指定 基础镜像信息
FROM ubuntu
# 2、维护者信息
MAINTAINER docker_user docker_user@email.com
# 3、镜像操作指令
RUN echo "deb http://archive.ubuntu.com/ubuntu/ raring main universe" >> /etc/apt/sources.list
RUN apt-get update && apt-get install -y nginx
RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf
# 4、容器启动执行指令
CMD /usr/sbin/nginx
Dockerfile 分为四部分:基础镜像信息、维护者信息、镜像操作指令、容器启动执行指令。一开始必须要指明所基于的镜像名称,接下来一般会说明维护者信息;后面则是镜像操作指令,例如 RUN 指令。每执行一条RUN 指令,镜像添加新的一层,并提交;最后是 CMD 指令,来指明运行容器时的操作命令。
image: 镜像,是一个只读模版,用来创建容器container: 容器,是一个可运行的镜像实例Dockerfile: 镜像构建的模版,描述镜像构建的步骤通过Dockerfile构建出镜像,然后通过镜像来创建容器,程序就跑在容器中。并且一个镜像可以随意创建N个容器,各个容器间相互隔离。
docker build -t zefey/xxxx .
docker run -dp 3000:3000 zefey/xxxx
1.使用docker ps命令获取容器的ID 。
docker ps
2.使用docker stop命令停止容器。
# Swap out <the-container-id> with the ID from docker ps
docker stop <the-container-id>
3.容器停止后,可以使用以下docker rm命令将其删除。
docker rm <the-container-id>
docker run -dp 3000:3000 zefey/xxxx