【Docker】(2)还在浏览网页寻找Docker命令?本文全面列举与使用Docker里的各个命令!想要什么命令直接从本文拿!

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: docker有着比VM更少的抽象层由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源因此在CPU、内存利用率上Docker将会在效率上有明显优势docker利用的时宿主机的内核,而不需要加载操作系统OS内核当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统内核进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程时分钟级别的。而Docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个Docker容器只需

1. 为什么Docker比VM快?

docker有着比VM更少的抽象层

  • 由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源
    因此在CPU、内存利用率上Docker将会在效率上有明显优势

docker利用的时宿主机的内核,而不需要加载操作系统OS内核

  • 当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统内核
    进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程时分钟级别的。
  • 而Docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个Docker容器只需要几秒钟

差异化:

Docker容器 虚拟机(VM)
操作系统 与宿主机共享OS 宿主机OS上运行虚拟机OS
存储大小 镜像小、便于存储与传输 镜像庞大(vmdk、vdi等)
运行性能 几乎无额外性能损失 操作系统额外的CPU、内存消耗
移植性 轻便、灵活,适应于Linux 笨重、与虚拟机技术耦合度高
硬件亲和性 面向软件开发者 面向硬件运维这
部署速度 快速、秒级 较慢、10s以上

2. 常用启动命令

功能 命令
启动docker systemctl start docker
停止docker systemctl stop docker
重启docker systemctl restart docker
查看docker状态 systemctl status docker
开机启动 systemctl enable docker
查看docker概要信息 docker info
查看docker总体帮助文档 docker --help
查看docker命令帮助文档 docker 具体命令 --help

3. 镜像命令

3.1 docker images

列出本地镜像:

docker images

各个选项说明:

  • REPOSITORY:表示镜像的仓库源
  • TAG:镜像的标签版本号
  • IMAGE ID:镜像ID
  • CREATED:镜像创建时间
  • SIZE:镜像大小

同一仓库源可以有多个TAG版本,代表中国仓库源的不同个版本,我们使用

  • REPOSITORY:TAG 定义不同的镜像

如果不指定一个镜像的版本版本标签,docker默认使用 REPOSITORY:latest 最新版本镜像

如上图:就是 nacos:latest —— nacos镜像:最新版

3.1.1 OPTIONS说明

-a :列出本地所有的镜像(包含历史映像层)

-q :只显示镜像ID

docker images -a
docker images -q

3.2 docker search

  • 查找某个镜像
docker search [OPTIONS] 镜像名字
参数 说明
NAME 镜像名称
DESCRIPTION 镜像说明
STARS 点赞数量
OFFICIAL 是否是官方的
AUTOMATED 是否是自动构建的
  • OPTIONS说明:
--limit:只列出N个镜像,默认25个
docker search --limit 5 redis

常见报错:Error response from daemon: Get “https://index.docker.io/v1/search?q=redis&n=5”: dial tcp 199.96.63.177:443: connect: connection refused

这代表您没有连接到仓库

3.3 docker pull

  • 下载镜像
docker pull 镜像名称[:TAG]
# 或者
docker pull 镜像名称

如果不规定TAG,那么就会使用latest 采用最新版本镜像

  • 等价于:docker pull 镜像名称:latest

3.4 docker system df

查看镜像/容器/数据卷所占的空间

3.5 docker rmi

  • 删除某 个/些 镜像
docker rmi 镜像ID
功能 代码
删除单个 docker rmi-f 镜像ID
删除多个 docker rmi -f 镜像名1:TAG 镜像名2:TAG
删除全部 docker rmi -f ${docker images -qa}

docker images -qa 的作用:列出所有的镜像ID

3.6 docker commit

docker commit 命令用于将容器的当前状态保存为一个新的 Docker 镜像。

docker commit 命令通常用于创建镜像来保存容器的状态,以便在将来可以重用或分发该镜像

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

OPTIONS说明:

  • **-a 😗*提交的镜像作者。
  • **-c 😗*使用 Dockerfile 指令来创建镜像。
  • **-m 😗*提交时的说明文字。
  • **-p 😗*提交镜像前暂停容器(默认为 true)。

3.7 docker push

docker push 命令用于将本地构建的 Docker 镜像推送(上传)到 Docker 注册表(如 Docker Hub 或私有注册表)

这使得镜像可以在其他系统或环境中共享和使用

docker push [OPTIONS] NAME[:TAG]
  • NAME: 镜像名称,通常包含注册表地址(如 docker.io/myrepo/myimage)。
  • TAG(可选): 镜像标签,默认为 latest

OPTIONS 说明:

  • **–disable-content-trust 😗*忽略镜像的校验,默认开启

4. 容器命令

注意,有镜像才能创建容器,这是根本前提,如果只是演示,可以使用nginx来做测试

docker pull nginx

4.1 新建+启动 容器

docker run [OPTINOS] IMAGE [COMMAND] [ARG...]

OPTIONS 说明:有些是一个减号,有些是两个减号

代码 说明
–name=“容器新名称” 为容器制定一个名称
-d 后台运行容器并返回容器ID
即 启动守护式容器(后台运行)
-i 以交互模式运行容器,通常与 -t 同时使用
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用
也即 启动交互式容器(前台有伪终端,等待交互)
-P 大写P,**随机**端口映射
-p 小写p,**指定**端口映射

例如:

docker run -it nginx /bin/bash

4.2 列出正在运行的容器

docker ps [OPTIONS]

OPTIONS说明(常用):

  • -a :列出当前所有正在运行的容器+历史上运行过的
  • -l :显示最近创建的容器。
  • -n :显示最近n个创建的容器。
  • -q :静默模式,只显示容器编号。

4.3 进入/退出容器

如何进入一个守护式容器内部?两种方式:

docker exec -it 容器ID /bin/bash
# 或者
docker attach -it 容器ID /bin/bash

更推荐以 exec 形式进入容器

exec命令,会进入容器内部,并且启动一个新进程。

attach这个命令会将你带入容器当前正在执行的终端,不会启动新的进程。这种方法适合于需要直接接管容器主进程的场景。

当进入到交互式容器内部后,有两种退出方式

  • exit :使用这种方式退出容器,会将容器停止
  • 快捷键ctrl+p+q :容器不会停止

4.4 启动已停止运行的容器

代码 功能
docker start 容器ID或容器名称 启动已停止运行的容器
docker restart 容器ID或容器名称 重启容器
docker stop 容器ID或容器名称 停止容器
docker kill 容器ID或容器名称 强制停止容器
docker rm 容器ID 删除已停止的容器
docker rm -f ${docker ps -a -q} 删除多个
docker ps -a -q | xargs docker rm 删除多个

4.5 重要部分

4.5.1 启动守护式容器(后台启动)

大部分情况下,我们希望docker的服务是在后台运行的,我们可以通过 -d 指定容器的后台运行模式

docker run -d 镜像名
  • 前台启动
docker run -it nginx
  • 后台启动
docker run -d nginx

4.5.2 查看容器日志、运行进程、内部细节

# 查看容器日志
docker logs 容器ID
# 查看容器内运行的进程
docker top 容器ID
# 查看容器内部细节
docker inspect 容器ID

4.5.3 进入容器内部

更加推荐 exec 方式进入容器内部,因为使用exit退出不会导致容器停止

docker exec -it 容器ID /bin/bash

4.5.4 拷贝

从容器内拷贝到主机(Linux)上

docker cp 容器ID:容器内路径 目标主机路径

4.5.5 导入和导出容器

export 导出容器的内容作为一个tar归档文件[对应import命令]

import 从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]

docker export 容器ID > 文件名.tar
cat 文件名.tar | docker import -镜像用户/镜像名:镜像版本号

4.6 常用

指令 说明
attach 当前 shell 下 attach 连接指定运行镜像
build 通过 Dockerfile 定制镜像
commit 提交当前容器为新的镜像
cp 从容器中拷贝指定文件或者目录到宿主机中
create 创建一个新的容器,同 run,但不启动容器
diff 查看 docker 容器变化
events 从 docker 服务获取容器实时事件
exec 在已存在的容器上运行命令
export 导出容器的内容流作为一个 tar 归档文件[对应 import ]
history 展示一个镜像形成历史
images 列出系统当前镜像
import 从tar包中的内容创建一个新的文件系统映像[对应export]
info 显示系统相关信息
inspect 查看容器详细信息
kill kill 指定 docker 容器
load 从一个 tar 包中加载一个镜像[对应 save]
login 注册或者登陆一个 docker 源服务器
logout 从当前 Docker registry 退出
logs 输出当前容器日志信息
port 查看映射端口对应的容器内部源端口
pause 暂停容器
ps 列出容器列表
pull 从docker镜像源服务器拉取指定镜像或者库镜像
push 推送指定镜像或者库镜像至docker源服务器
restart 重启运行的容器
rm 移除一个或者多个容器
rmi 移除一个或多个镜像[无容器使用该镜像才可删除,否则需删除相关容器才可继续或 -f 强制删除]
run 创建一个新的容器并运行一个命令
save 保存一个镜像为一个 tar 包[对应 load]
search 在 docker hub 中搜索镜像
start 启动容器
stop 停止容器
tag 给源中镜像打标签
top 查看容器中运行的进程信息
unpause 取消暂停容器
version 查看 docker 版本号
wait 截取容器停止时的退出状态值

5. ❤️Docker专栏 - 前篇回顾

6. 💕👉 其他好文推荐

目录
相关文章
|
4月前
|
安全 Unix Linux
Docker中授权普通用户使用docker命令以及解决无权限访问/var/run/docker.sock错误。
通过上述步骤,可以有效解决普通用户无法使用Docker命令的问题,同时处理 `/var/run/docker.sock`权限错误。这样的设置不仅方便用户使用Docker提供的各项服务,同时还能保护系统的安全性。在进行此类配置更改时,请确保理解每一步骤的作用及潜在的安全风险,尤其是在修改文件权限时。在实际的操作中,始终应该努力保持系统的最低必要权限,避免过度放宽权限,这是保障系统安全的一个重要方针。
1292 75
|
5月前
|
Docker 容器
Docker run命令-p参数详解
本文介绍Docker端口映射的基础用法。通过`docker run -p <宿主机端口>:<容器端口>`实现端口映射,例如`-p 5000:80`将宿主机5000端口映射到容器80端口,外部访问宿主机5000端口时流量会转发至容器内部的80端口。示例命令中,`-d`用于后台运行,`--restart=always`确保容器自动重启,`--name`指定容器名称。部署完成后可通过`http://服务器IP地址:5000`验证服务是否正常运行。
|
4月前
|
Docker 容器
熟悉Docker容器管理命令:start、stop与restart详细使用指南
掌握这些Docker容器管理命令对于维护应用程序的正常运行至关重要。在实际操作中,应注意容器配置、关联资源以及日志等信息,确保各项操作都能够顺畅并且安全地执行。
576 0
|
6月前
|
网络协议 Ubuntu Docker
Docker Compose--命令说明
Docker Compose--命令说明
1080 30
|
6月前
|
Ubuntu Linux 开发者
常用的Docker命令:docker_cmd_sheet
以上就是一些常用的Docker命令,希望能帮助你更好地驾驭这个强大的工具。记住,Docker就像是一个魔法咒语,只有真正理解和熟练使用,才能发挥出它的最大魔力。
155 22
|
6月前
|
Shell 应用服务中间件 nginx
docker 镜像的部分常用命令
docker镜像常用命令
224 16
|
6月前
|
关系型数据库 MySQL Docker
|
6月前
|
关系型数据库 MySQL 数据库
Docker 安装常用软件相关命令
本文介绍了在CentOS 7.9系统上安装Docker的详细步骤,包括添加阿里云镜像源、安装Docker及相关组件、启动服务以及配置镜像加速。同时,还展示了如何通过Docker安装MySQL 5.7版本数据库,涵盖拉取镜像、创建数据目录、运行容器及配置挂载点等操作,并提供验证安装成功的命令和截图。适合需要部署Docker与MySQL环境的用户参考。
360 5
|
7月前
|
NoSQL 应用服务中间件 Redis
Docker 常用命令整理
Docker 常用命令整理
200 1
|
11月前
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
403 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解