
Docker
核心概念
镜像(Image)
容器(Container)
仓库(Repository)
重要文件
Dockerfile
.dockerignore
识别容器有三种方式
Identifier type | Comment | Example 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] .
- t 为 —tag
(.) 为当前目录
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]
- dp是 -d -p 的缩写
- p: —publish 将容器端口发布到主机端口
- d: —detach 在后台运行docker,返回容器ID
—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
- a: —all 显示所有容器(默认显示正在运行)
停用单个或多个容器(默认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(指令) | Examples | Comments |
---|---|---|
FROM | FROM node:12-alpine | 初始化一个新的构建阶段,Dockerfile 必须以FORM指令开头,用来引用基础镜像,FROM之前只能有1个或多个ARG的声明变量,用在FROM引用的镜像内 |
WORKDIR | WORKDIF /app | 指定工作目录,设置后各层的当前目录就被改为指定的目录,如果该目录不存在,会自动建立此目录 |
RUN | RUN yarn install —production | 用于运行指定命令,并结束当前层 |
ENV | 设置环境变量 | |
ARG | FROM busybox | |
ARG user1 | ||
ARG buildno |
…
或者 FROM busybox ARG user1=someuser ARG buildno=1
…
| 定义了一个构建参数,用户设置默认值,或者可以通过构建命令传入。—build-arg
.dockerignore file
docs: https://docs.docker.com/engine/reference/builder/#dockerignore-file
前端这边常用于忽略node_module文件,不然构建镜像会很大