Docker 入门使用
hanpy

整理一些 docker 镜像、容器还有其他常用的命令。

镜像相关命令

docker pull 镜像拉取

文档:docker pull

1
2
3
4
5
6
7
8
9
10
# docker pull [OPTIONS] NAME[:TAG|@DIGEST]

OPTIONS:
--all-tags , -a 下载所有标签的镜像到本地
--disable-content-trust true 跳过验证
--platform 设置平台
--quiet , -q 不显示详情

Examples:
docker pull mysql:5.7

docker search 镜像搜索

文档:docker search

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
docker search [OPTIONS] TERM

Options:
-f, --filter filter 过滤器
--format string 格式化显示
--limit int 最大显示数量,默认是25
--no-trunc 不显示描述

# --filter用法
$ docker docker search --filter=is-official=true php
# stars starts数量,大于等于
# is-automated 是否自动构建
# is-official 是否官方

# --format用法
$ docker search --format '{{.Name}}:{{.StarCount}}' mysql
# .Name 镜像名称
# .Description 镜像描述
# .StarCount stars 数量
# .IsOfficial 是否是官方
# .IsAutomated 是否自动化构建

docker rmi 镜像删除

文档:docker rmi

1
2
3
4
5
6
7
8
# 删除镜像
docker rmi [OPTIONS] IMAGE [IMAGE...]

OPTIONS:
--force , -f 强制删除镜像

Examples
$ docker rmi mysql

docker images 镜像列表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 显示所有镜像
docker images [OPTIONS] [REPOSITORY[:TAG]]

Options:
-a, --all 显示所有的镜像
--digests 显示镜像的信息
-f, --filter filter 过滤显示
--format string 格式化输出
--no-trunc Don't truncate output
-q, --quiet 只显示镜像ID

# 字段解释
# REPOSITORY 镜像的仓库源
# TAG 镜像标签
# IMAGE ID 镜像ID
# CREATED 镜像创建时间
# SIZE 镜像大小

容器相关命令

docker run 新建容器并启动

文档:Docker run reference

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

常用OPTIONS:
--detach,-d:后台运行容器
--env,-e:指定环境变量
--env-file:环境变量文件
--group-add:增加用户组
--link:增加连接的容器
--name:启动的容器名称
--network:指定容器要连接的网络
--volume,-v:挂载的外部目录
--workdir , -w:指定工作目录

Examples:
docker run -d --name mysql57 mysql:5.7

docker ps 显示运行的容器

文档:docker ps

1
2
3
4
5
6
7
8
9
10
11
docker ps [OPTIONS]

OPTIONS:
--all , -a 查看所有的容器,包含没有运行的容器
--filter , -f Filter output based on conditions provided
--format Pretty-print containers using a Go template
--last , -n -1 查看最近运行的几个容器 | docker ps -a -n=2:查看最近运行的两个容器
--latest , -l Show the latest created container (includes all states)
--no-trunc 不显示额外输出
--quiet , -q 只显示容器ID
--size , -s Display total file sizes

docker exec 在容器中执行命令

文档:docker exec

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

OPTIONS:
--detach , -d 后台运行
--detach-keys Override the key sequence for detaching a container
--env , -e 设置环境变量
--env-file 指定环境变量文件
--interactive , -i 保持stdin处于打开状态,交互式会话
--privileged Give extended privileges to the command
--tty , -t Allocate a pseudo-TTY
--user , -u Username or UID (format: <name|uid>[:<group|gid>])
--workdir , -w 指定工作目录

Examples:
docker exec -it mysql57 /bin/bash

docker start 启动容器

文档:docker start

1
2
3
4
5
启动容器
docker start [OPTIONS] CONTAINER [CONTAINER...]

Examples:
docker start mysql57

docker restart 重启容器

文档:docker restart

1
2
3
4
5
6
7
8
9
重启容器
docker restart [OPTIONS] CONTAINER [CONTAINER...]

OPTIONS
--signal , -s 发送信号到容器
--time , -t

Examples:
docker restart mysql57

docker stop 容器停止

文档:docker stop

1
2
3
4
docker stop [OPTIONS] CONTAINER [CONTAINER...]

Examples:
docker stop mysql57

docker rm 删除容器

文档:docker rm

1
2
3
4
5
6
7
8
9
docker rm [OPTIONS] CONTAINER [CONTAINER...]

Options:
--force , -f 强制删除正在运行的容器
--link , -l 删除指定的链接
--volumes , -v 移除与容器关联的匿名卷

Examples:
docker rm mysql57

其他一些常用命令

docker logs 容器日志

文档:docker logs

1
2
3
4
5
6
7
8
9
10
11
12
docker logs [OPTIONS] CONTAINER

Options:
--details 显示一些额外的扩展信息
--follow , -f 跟踪日志的输出
--since Show logs since timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
--tail , -n all Number of lines to show from the end of the logs
--timestamps , -t Show timestamps
--until Show logs before a timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)

Examples:
docker logs -f --until=2s mysql57

docker top 容器内部进程

文档:docker top

1
2
查看docker容器内部的进程信息
docker top CONTAINER [ps OPTIONS]

docker inspect 容器元数据

文档:docker inspect

1
2
查看容器中的元数据
docker inspect [OPTIONS] NAME|ID [NAME|ID...]

docker cp 容器内外复制

文档:docker cp

1
2
3
4
5
在容器和本地文件系统之间复制文件/文件夹
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-

Examples:
docker cp ./some_file CONTAINER:/work

帮助命令

官方文档:https://docs.docker.com/engine/reference/run/

1
2
3
docker 命令 --help | docker所有的命令,都可以使用docker 命令 --help 来查看帮助命令
docker version # 显示docker的版本信息
docker info # 显示docker的系统信息,包括镜像和容器的数量