RaccoonLaptopGif

Docker

核心概念

镜像(Image)

容器(Container)

仓库(Repository)

重要文件

Dockerfile

.dockerignore

识别容器有三种方式

Identifier typeCommentExample value
UUID long identifier长标识符“f78375b1c487e03c9438c729345e54db9d20cfa2ac1fc3494b6eb60872e74778”
UUID short identifier短标识符“f78375b1c487”
Name容器名称“evil_ptolemy”

Docker CLI

快速查询命令帮助

docker [command] —help

构建镜像(Build images)

docs: https://docs.docker.com/engine/reference/commandline/build/

docker build -t [Image-name] .

(.) 为当前目录

e.g: docker build -t my-docker-image .

查询所有镜像

docs: https://docs.docker.com/engine/reference/commandline/images/

docker images

删除镜像(Remove one or more images)

docs: https://docs.docker.com/engine/reference/commandline/rmi/

docker rmi

生产新容器运行(Run a command in a new container)

docs: https://docs.docker.com/engine/reference/run/

e.g: docker run -dp 3000:3000 —name [container-name] [Image-name]

—name 后面是自定义容器名称,如果不设定这两个命令,会自动生成。

已有容器运行

docs: https://docs.docker.com/engine/reference/commandline/start/

docker start [options] [CONTAINER...]

查询当前容器的目录

docs: https://docs.docker.com/engine/reference/commandline/exec/

需要进入容器执行sh脚本:bash shell

在正在运行的容器中运行命令:docker exec -it [container name] /bin/sh

查看当前工作目录: ls

退出当前容器的bash shell: control+D 或者 运行 exit 命令退出

查看所有运行的容器

docs: https://docs.docker.com/engine/reference/commandline/ps/

docker ps

查看所有容器包含未运行的

docker ps -a

停用单个或多个容器(默认10秒后会被杀死进程)(Stop one or more running containers)

docs: https://docs.docker.com/engine/reference/commandline/stop/

docker stop [container-name container-name container-name]

删除容器 (Remove one or more containers)

docs: https://docs.docker.com/engine/reference/commandline/rm/

docker rm [container-name container-name container-name]

Dockerfile reference

docs: https://docs.docker.com/engine/reference/builder/

注意每次 RUN 都是新的一层,应尽量在一层完成所有隔离操作。(# 开头为注释)

Instructions(指令)ExamplesComments
FROMFROM node:12-alpine初始化一个新的构建阶段,Dockerfile 必须以FORM指令开头,用来引用基础镜像,FROM之前只能有1个或多个ARG的声明变量,用在FROM引用的镜像内
WORKDIRWORKDIF /app指定工作目录,设置后各层的当前目录就被改为指定的目录,如果该目录不存在,会自动建立此目录
RUNRUN yarn install —production用于运行指定命令,并结束当前层
ENV设置环境变量
ARGFROM busybox
ARG user1
ARG buildno

或者 FROM busybox ARG user1=someuser ARG buildno=1

| 定义了一个构建参数,用户设置默认值,或者可以通过构建命令传入。—build-arg = | | COPY | | 复制文件 | | ADD | | 更高级的复制文件 | | CMD | | 容器启动命令 |

.dockerignore file

docs: https://docs.docker.com/engine/reference/builder/#dockerignore-file

前端这边常用于忽略node_module文件,不然构建镜像会很大