🍁docker常用命令
官方帮助文档:https://docs.docker.com/reference/
🌲帮助命令(版本信息)
docker -v # 显示docker版本
docker version # 显示docker版本信息
docker info # 显示docker系统信息
docker 命令 --help # 帮助命令
🌲镜像基本命令
- docker images :查看本地镜像
官方文档:https://docs.docker.com/reference/cli/docker/image/ls/
# 查看本地主机上所有的镜像
beihai@beihai-pc:~/桌面$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d2c94e258dcb 13 months ago 13.3kB
# 解释
REPOSITORY 镜像的仓库源
TAG 镜像的标签
IMAGE ID 镜像的id
CREATED 镜像创建时间
SIZE 镜像大小
# 可选项:
-a, --all 显示所有镜像(默认隐藏中间镜像)
--digests 显示摘要
-f, --filter 根据提供的条件筛选输出
--format 使用自定义模板设置输出格式:“
table”:使用列标题以表格格式打印输出(默认)
“table TEMPLATE”:使用给定的 Go 模板
以表格格式打印输出“json”:以 JSON 格式
打印“TEMPLATE”:使用给定的 Go 模板打印输出。
指 https://docs.docker.com/go/formatting/有关使用模板设置输出格式的详细信息
--no-trunc 不要截断输出
-q, --quiet 仅显示镜像 ID
- docker search :搜索镜像
官方文档:https://docs.docker.com/reference/cli/docker/search/
使用命令搜索,或者网站搜索:https://hub.docker.com/
beihai@beihai-pc:~/桌面$ docker search mysql
NAME DESCRIPTION STARS OFFICIAL
mysql MySQL is a widely used, open-source relation… 15116 [OK]
mariadb MariaDB Server is a high performing open sou… 5762 [OK]
percona Percona Server is a fork of the MySQL relati… 628 [OK]
phpmyadmin phpMyAdmin - A web interface for MySQL and M… 990 [OK]
circleci/mysql MySQL is a widely used, open-source relation… 30
bitnami/mysql Bitnami container image for MySQL 112
......
# 解释
NAME 镜像名称
DESCRIPTION 镜像说明(描述)
STARS 镜像的星级评分(用户对该镜像的喜爱程度)
OFFICIAL 官方标识([OK] 表示这是一个官方镜像,由官方维护和提供,通常更可靠和安全。)
# 可选项:
-f, --filter 根据提供的条件筛选输出
--format 使用 Go 模板进行漂亮的打印搜索
--limit 最大搜索结果数
--no-trunc 不要截断输出
- docker pull :拉取(下载)镜像
官方文档:https://docs.docker.com/reference/cli/docker/image/pull/
# 拉取镜像:docker pull 镜像名[:tag] (如果不写tag,默认就是latest)
beihai@beihai-pc:~/桌面$ docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
72a69066d2fe: Pull complete
93619dbc5b36: Pull complete #。 分层下载,docker image的核心
99da31dd6142: Pull complete
626033c43d70: Pull complete
37d5d7efb64e: Pull complete
ac563158d721: Pull complete
d2ba16033dad: Pull complete
688ba7d5c01a: Pull complete
00e060b6d11d: Pull complete
1c04857f594f: Pull complete
4d7cfa90e6ea: Pull complete
e0431212d27d: Pull complete
Digest: sha256:e9027fe4d91c0153429607251656806cc784e914937271037f7738bd5b8e7709
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest #。 真实地址,也可以直接pull真实地址
=================================
#下面命令两个等价
docker pull docker.io/library/mysql:latest
docker pull mysql
#指定版本下载:
docker pull mysql:5.7
- docker rmi : 删除镜像
官方文档:https://docs.docker.com/reference/cli/docker/image/rm/
# 获取到镜像id(docker images)
#根据镜像id删除镜像 mysql5.7
beihai@beihai-pc:~/桌面$ docker rmi c20987f18b13
Untagged: mysql:5.7
Untagged: mysql@sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94
Deleted: sha256:c20987f18b130f9d144c9828df630417e2a9523148930dc3963e9d0dab302a76
Deleted: sha256:6567396b065ee734fb2dbb80c8923324a778426dfd01969f091f1ab2d52c7989
Deleted: sha256:0910f12649d514b471f1583a16f672ab67e3d29d9833a15dc2df50dd5536e40f
Deleted: sha256:6682af2fb40555c448b84711c7302d0f86fc716bbe9c7dc7dbd739ef9d757150
Deleted: sha256:5c062c3ac20f576d24454e74781511a5f96739f289edaadf2de934d06e910b92
======================
docker rmi 镜像id # 删除指定镜像
docker rmi 镜像id 镜像id 镜像id # 删除多个指定镜像
docker rmi $(docker images -q) # 删除全部镜像
#可选项
-f, --force 强制删除镜像
--no-prune 不要删除未标记的父项
🌲容器基本命令
- docker run :启动(运行)容器
官方文档:https://docs.docker.com/reference/cli/docker/container/run/
docker run [可选参数] image
# 可选参数(参数大全需去官方文档查看,这里列常用参数)
-d, --detach 在后台运行容器并打印容器 ID
--name 为容器分配名称,用来区分容器
-p, --publish 将容器的端口发布到主机
-P, --publish-all 将所有公开的端口发布到随机端口
-it 使用交互方式运行,进入容器查看内容
----- 【-it】
eg: docker run -it centos /bin/bash
#进入交互方式后,从容器退回主机
- exit #这种方式退出后,容器停止运行
- 快捷键 :Ctrl + P + Q # 容器不停止运行
- docker ps :列出运行的容器
官方文档:https://docs.docker.com/reference/cli/docker/container/ls/
docker ps #列出容器,默认为正在运行的容器
#可选项
-a, --all 显示所有容器(默认显示正在运行)
-f, --filter 根据提供的条件筛选输出
-n, --last 显示 n 个上次创建的容器(包括所有状态)
-l, --latest 显示最新创建的容器(包括所有状态)
-q, --quiet 仅显示容器 ID
-s, --size 显示文件总大小
- docker rm:删除容器
官方文档:https://docs.docker.com/reference/cli/docker/container/rm/
docker rm 容器id #删除指定的容器,不能删除正在运行的容器,如果要强制删除 使用 -f 参数
# 可选项
-f, --force 强制移除正在运行的容器(使用 SIGKILL)
-l, --link 删除指定的链接
-v, --volumes 删除与容器关联的匿名卷
- docker start:启动容器
官方文档:https://docs.docker.com/reference/cli/docker/container/start/
docker start 容器id
- docker restart:重启容器
官方文档:https://docs.docker.com/reference/cli/docker/container/restart/
docker start 容器id
- docker stop:停止运行的容器
官方文档:https://docs.docker.com/reference/cli/docker/container/stop/
docker stop 容器id
- docker kill:强制停止运行的容器
官方文档:https://docs.docker.com/reference/cli/docker/container/kill/
docker kill 容器id
- docker logs :查看容器日志
官方文档:https://docs.docker.com/reference/cli/docker/container/logs/
docker logs
#可选参数
--details 显示提供给日志的额外详细信息
-f, --follow 关注日志输出
--since 显示自时间戳(例如)或相对(例如 42分钟)2013-01-02T13:23:37Z42m
-n, --tail all 从日志末尾显示的行数
-t, --timestamps 显示时间戳
--until 在时间戳(例如)或相对(例如 42分钟)2013-01-02T13:23:37Z42m
- docker top:显示容器的运行进程
官方文档:https://docs.docker.com/reference/cli/docker/container/top/
docker top
- docker inspect:显示容器的详细信息
官方文档:https://docs.docker.com/reference/cli/docker/container/inspect/
docker inspect
- docker exec :在正在运行的容器中执行命令
官方文档:https://docs.docker.com/reference/cli/docker/container/exec/
docker exec -it 容器id /bin/bash
#在正在运行的容器中执行命令、与正在进行的容器交互、进入正在运行的容器
命令解析:
-i 选项让标准输入保持打开,你可以在命令行中输入命令。
-t 选项分配一个伪终端,使得 shell 可以正确处理输入和输出。
-it 在交互模式下运行容器,并且可以与容器内部的命令行交互。
/bin/bash : 启动一个交互式终端会话,根据需求查看所需的终端类型。
不同容器所支持的终端类型可能不一样,可用命令查询容器中有哪些可用的 shell:
docker exec -it 容器id/容器名称 cat /etc/shells
eg:
beihai@beihai-pc:~/桌面$ docker exec -it nginx01 cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/rbash
/bin/dash
- docker exec :在正在运行的容器中执行命令
官方文档:https://docs.docker.com/reference/cli/docker/container/exec/
docker exec -it 容器id /bin/bash
#在正在运行的容器中执行命令、与正在进行的容器交互、进入正在运行的容器
# !开辟一个新的终端,并不会影响到主进程
命令解析:
-i 选项让标准输入保持打开,你可以在命令行中输入命令。
-t 选项分配一个伪终端,使得 shell 可以正确处理输入和输出。
-it 在交互模式下运行容器,并且可以与容器内部的命令行交互。
/bin/bash : 启动一个交互式终端会话,根据需求查看所需的终端类型。
不同容器所支持的终端类型可能不一样,可用命令查询容器中有哪些可用的 shell:
docker exec -it 容器id/容器名称 cat /etc/shells
eg:
beihai@beihai-pc:~/桌面$ docker exec -it nginx01 cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/rbash
/bin/dash
- docker attach :将输入、输出和错误流附加到正在运行的容器
官方文档:https://docs.docker.com/reference/cli/docker/container/attach/
docker attach 容器id
#将本地标准输入、输出和错误流附加到正在运行的容器、与正在进行的容器交互、进入正在运行的容器
#!进入正在执行的终端,并不会启动新的进程,如果退出则容器关闭,会影响到主进程
- docker cp :拷贝文件
官方文档:https://docs.docker.com/reference/cli/docker/container/cp/
docker cp
#容器和本地文件系统之间复制文件/文件夹
docker cp 容器id:/path /local_path
# 将容器里面path路径下的文件、文件夹 复制到本机local_path路径下
docker cp /local_path 容器id:/path
# 将本机local_path路径下的文件、文件夹 复制到容器里面path路径下
🌲命令脑图
【来源:https://cloud.tencent.com/developer/article/1772136】
🌲命令逻辑关系图
【来源:https://blog.csdn.net/qq_16290791/article/details/81116832】