
docker有着比VM更少的抽象层
docker利用的时宿主机的内核,而不需要加载操作系统OS内核
差异化:
Docker容器 | 虚拟机(VM) | |
|---|---|---|
操作系统 | 与宿主机共享OS | 宿主机OS上运行虚拟机OS |
存储大小 | 镜像小、便于存储与传输 | 镜像庞大(vmdk、vdi等) |
运行性能 | 几乎无额外性能损失 | 操作系统额外的CPU、内存消耗 |
移植性 | 轻便、灵活,适应于Linux | 笨重、与虚拟机技术耦合度高 |
硬件亲和性 | 面向软件开发者 | 面向硬件运维这 |
部署速度 | 快速、秒级 | 较慢、10s以上 |
功能 | 命令 |
|---|---|
启动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 |
列出本地镜像:
docker images
各个选项说明:
同一仓库源可以有多个TAG版本,代表中国仓库源的不同个版本,我们使用
REPOSITORY:TAG 定义不同的镜像如果不指定一个镜像的版本版本标签,docker默认使用 REPOSITORY:latest 最新版本镜像
如上图:就是 nacos:latest —— nacos镜像:最新版
-a :列出本地所有的镜像(包含历史映像层)
-q :只显示镜像ID
docker images -a
docker images -q
docker search [OPTIONS] 镜像名字参数 | 说明 |
|---|---|
NAME | 镜像名称 |
DESCRIPTION | 镜像说明 |
STARS | 点赞数量 |
OFFICIAL | 是否是官方的 |
AUTOMATED | 是否是自动构建的 |
--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 这代表您没有连接到仓库
docker pull 镜像名称[:TAG]
# 或者
docker pull 镜像名称如果不规定TAG,那么就会使用latest 采用最新版本镜像
docker pull 镜像名称:latest查看镜像/容器/数据卷所占的空间

docker rmi 镜像ID功能 | 代码 |
|---|---|
删除单个 | docker rmi-f 镜像ID |
删除多个 | docker rmi -f 镜像名1:TAG 镜像名2:TAG |
删除全部 | docker rmi -f ${docker images -qa} |
docker images -qa的作用:列出所有的镜像ID
docker commit 命令用于将容器的当前状态保存为一个新的 Docker 镜像。
docker commit 命令通常用于创建镜像来保存容器的状态,以便在将来可以重用或分发该镜像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]OPTIONS说明:
docker push 命令用于将本地构建的 Docker 镜像推送(上传)到 Docker 注册表(如 Docker Hub 或私有注册表)
这使得镜像可以在其他系统或环境中共享和使用
docker push [OPTIONS] NAME[:TAG]NAME: 镜像名称,通常包含注册表地址(如 docker.io/myrepo/myimage)。TAG(可选): 镜像标签,默认为 latest。OPTIONS 说明:
注意,有镜像才能创建容器,这是根本前提,如果只是演示,可以使用nginx来做测试
docker pull nginxdocker run [OPTINOS] IMAGE [COMMAND] [ARG...]OPTIONS 说明:有些是一个减号,有些是两个减号
代码 | 说明 |
|---|---|
–name=“容器新名称” | 为容器制定一个名称 |
-d | 后台运行容器并返回容器ID即 启动守护式容器(后台运行) |
-i | 以交互模式运行容器,通常与 -t 同时使用 |
-t | 为容器重新分配一个伪输入终端,通常与 -i 同时使用也即 启动交互式容器(前台有伪终端,等待交互) |
-P | 大写P,**随机**端口映射 |
-p | 小写p,**指定**端口映射 |
例如:
docker run -it nginx /bin/bash docker ps [OPTIONS]OPTIONS说明(常用):

如何进入一个守护式容器内部?两种方式:
docker exec -it 容器ID /bin/bash
# 或者
docker attach -it 容器ID /bin/bash更推荐以 exec 形式进入容器
exec命令,会进入容器内部,并且启动一个新进程。 attach这个命令会将你带入容器当前正在执行的终端,不会启动新的进程。这种方法适合于需要直接接管容器主进程的场景。
当进入到交互式容器内部后,有两种退出方式
代码 | 功能 |
|---|---|
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 | 删除多个 |
大部分情况下,我们希望docker的服务是在后台运行的,我们可以通过 -d 指定容器的后台运行模式
docker run -d 镜像名前台启动
docker run -it nginx后台启动
docker run -d nginx# 查看容器日志
docker logs 容器ID
# 查看容器内运行的进程
docker top 容器ID
# 查看容器内部细节
docker inspect 容器ID更加推荐 exec 方式进入容器内部,因为使用exit退出不会导致容器停止
docker exec -it 容器ID /bin/bash从容器内拷贝到主机(Linux)上
docker cp 容器ID:容器内路径 目标主机路径export 导出容器的内容作为一个tar归档文件[对应import命令]
import 从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]
docker export 容器ID > 文件名.tar
cat 文件名.tar | docker import -镜像用户/镜像名:镜像版本号
指令 | 说明 |
|---|---|
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 | 截取容器停止时的退出状态值 |