文章目录
1、卸载旧版本
2、yum安装Docker CE(社区版)
3、添加镜像加速器
4、docker --version 查看docker版本
5、docker info 或 docker system info 显示 Docker 系统的详细信息,包括容器、镜像、网络等
6、docker search 搜索镜像
7、docker pull 拉取镜像
8、docker images 或 docker image ls 列出已经下载并存储到本地的所有镜像
9、docker image rm 或 docker rmi 删除本地镜像
10、结合docker image ls -q 批量删除镜像
11、docker run 运行容器
12、docker ps 或 docker container ls 列出容器
13、docker stop 或 docker container stop 停止容器
14、docker restart 或 docker container restart 重启容器
15、docker start 或 docker container start 启动容器
16、docker rm 或 docker container rm 删除容器
17、docker exec 进行运行的容器进行交互操作
18、docker logs 查看容器运行日志
19、docker export 导出容器快照
20、docker import 导入 tar 镜像文件 / 容器快照为本地镜像
21、docker save 保存本地镜像为tar镜像文件
22、docker load 加载 tar 镜像文件为本地镜像
23、docker save / load 与 export / import 对比分析
24、docker image prune 清理none镜像(虚悬镜像:没被标记且没被其它任何镜像引用的镜像)
25、docker container prune 清理停止状态的容器
26、docker volume prune 清理无容器使用的卷
27、docker network prune 清理没有被容器未使用的网络
28、docker system prune 清理所有没有使用的数据
29、设置定时清理docker数据
30、docker system df 查看Docker整体磁盘使用率的概况
31、docker build 从指定的 Dockerfile 构建镜像
32、docker commit 从一个容器的更改创建一个新的镜像
33、docker network ls 列出所有 Docker 网络
34、docker network create 创建一个新的 Docker 网络
35、docker network connect 连接一个容器到一个网络
36、docker network disconnect 断开一个容器与一个网络的连接
37、docker network inspect 查看容器网络IP的占用情况
38、docker inspect my-container | grep IPAddress 查看容器的ip地址
39、docker volume ls 列出所有 Docker 数据卷
40、docker volume create 创建一个新的数据卷
41、docker volume rm 删除数据卷
42、docker tag 给镜像打标签
43、docker push 推送镜像
44、docker inspect 以json格式查看容器、镜像、网络和卷等对象的详细信息
45、docker cp :用于容器与本地主机之间的数据拷贝。
1、卸载旧版本
# 旧版本的Docker称为 docker 或 docker-engine,使用以下命令卸载:
[root@localhost ~]# sudo yum remove docker docker-common docker-selinux docker-engine
2、yum安装Docker CE(社区版)
# step 1: 安装必要的一些系统工具
[root@localhost ~]# sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
[root@localhost ~]# sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装 Docker-CE
[root@localhost ~]# sudo yum makecache fast
[root@localhost ~]# sudo yum -y install docker-ce
# Step 4: 开启Docker服务
[root@localhost ~]# sudo systemctl enable docker
[root@localhost ~]# sudo systemctl start docker
注意:
官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,你可以通过以下方式开启。同理可以开启各种测试版本等。
#将 [docker-ce-test] 下方的 enabled=0 修改为 enabled=1
[root@localhost ~]# sudo vi /etc/yum.repos.d/docker-ce.repo
......
[docker-ce-test]
name=Docker CE Test - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/8/$basearch/test
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
......
安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
[root@localhost ~]# yum list docker-ce.x86_64 --showduplicates | sort -r
Loading mirror speeds from cached hostfile
Loaded plugins: branch, fastestmirror, langpacks
docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable
docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
Available Packages
# Step2 : 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos)
[root@localhost ~]# sudo yum -y install docker-ce-[VERSION]
3、添加镜像加速器
国内从Docker Hub上拉取镜像有时会遇到困难,此时可以配置镜像加速器。很多云服务商都提供了加速器服务,如:
阿里云提供的加速器:https://cr.console.aliyun.com/#/accelerator
DaoCloud提供的加速器:https://www.daocloud.io/mirror#accelerator-doc
方法一:
##修改daemon.json配置文件
[root@localhost ~]# cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
##重启docker
[root@localhost ~]# sudo systemctl restart docker
方法二:
# step 1: 登录 https://cr.console.aliyun.com/#/accelerator
# Step 2: 复制"您的专属加速器地址"对应的URL
# Step 3: 新建目录
[root@localhost ~]# sudo mkdir -p /etc/docker
# Step 4: 新建文件
[root@localhost ~]# sudo vi /etc/docker/daemon.json
{
"registry-mirrors":["您的专属加速器地址对应的URL"]
}
# Step 5: 加载daemon.json文件
[root@localhost ~]# sudo systemctl daemon-reload
# Step 6: 重启docker
[root@localhost ~]# sudo systemctl restart docker
方法三:
# step 1: 登录 https://cr.console.aliyun.com/#/accelerator
# Step 2: 复制"您的专属加速器地址"对应的URL
# Step 3: [root@localhost ~]# vi /etc/sysconfig/docker,修改 OPTIONS 的值为:
OPTIONS='--selinux-enabled --log-driver=journald --registry-mirror=您的专属加速器地址对应的URL'
# Step 4: 重启docker
[root@localhost ~]# sudo systemctl restart docker
4、docker --version 查看docker版本
[root@localhost ~]# docker --version
5、docker info 或 docker system info 显示 Docker 系统的详细信息,包括容器、镜像、网络等
[root@localhost ~]# docker info
[root@localhost ~]# docker system info
6、docker search 搜索镜像
Docker Hub(https://hub.docker.com/explore/)或Docker Store(https://store.docker.com/)上有大量高质量的镜像可用,可用 docker search命令搜索镜像。
命令格式如下:
docker search [选项] 关键字
选项说明:
-f, --filter filter 基于条件过滤结果
--format string 使用Go模板格式化搜索结果
--limit int 最多显示多少个搜索结果 (默认是25)
--no-trunc Don't truncate output
示例:
搜索结果将返回:用户名(缺省值是library)/仓库名、描述、收藏数(表示该镜像的受关注程度)、是否官方创建。
镜像资源分为两类:
- 一类是ubuntu这样的镜像,往往使用单个单词作为名字,被称为基础镜像或根镜像。
- 另一类,如 tutum/ubuntu 镜像,由Docker的用户创建并维护的,往往带有用户名称前缀。
7、docker pull 拉取镜像
命令格式如下:
docker pull [选项] 仓库名[:标签|@摘要]
注意:
1) 如果不给出用户名前缀,则默认是 library,即官方镜像。
2) 选项说明:
-a, --all-tags 拉取仓库中的所有镜像(Name后不要跟标签或摘要)
--disable-content-trust 忽略镜像的校验,默认开启校验
3) 仓库名:镜像是分标签(版本)放在指定的镜像仓库中的,比如,ubuntu镜像仓库中,可以有16.04、14.04、latest等很多不同标签(版本)的镜像。
4) 镜像名:由 仓库名:标签 组成
示例:
上面命令没给出镜像仓库地址,将从Docker Hub获取;没有给出用户名,将拉取官方镜像 library/ubuntu仓库中标签为16.04的镜像。
从下载过程可见,镜像是由多层存储所构成,每一层是在前一层的基础上进行的修改。
下载也是一层一层地下载,并非单一文件。
下载过程中给出了每一层的ID的前12位,下载完成后,给出镜像完整的sha256摘要,确保下载一致性。
8、docker images 或 docker image ls 列出已经下载并存储到本地的所有镜像
命令格式如下:
docker image ls [选项] [仓库名[:标签]]
或
docker images [选项] [仓库名[:标签]]
选项说明:
-a, --all 显示所有镜像 (默认会隐藏中间层镜像)
--digests 显示摘要
-f, --filter filter 基于条件过滤
--format string 使用Go模板格式化显示结果
--no-trunc Don't truncate output
-q, --quiet 只显示镜像的ID
示例:
1) 列表包含了仓库名、标签(版本)、镜像ID、镜像在Docker Hub上的创建时间、镜像在本地展开后所占用的空间。
2) 镜像ID是镜像的唯一标识。一个镜像可以对应多个标签,比如列表中 ubuntu:16.04 和 ubuntu:latest 拥有相同的镜像ID,所以,他们是同一个镜像。
3) 镜像在本地磁盘展开后所占用的空间,和Docker Hub上显示的大小不一样,Docker Hub上显示的是压缩后的大小。
4) 上面列表中,各个镜像体积的总和并非是所有镜像的实际硬盘消耗,由于Docker镜像是多层存储结构,可以继承、复用,因此不同镜像可能会因为使用相同的基础镜像,从而拥有共同的层。而Docker使用Union FS,相同的层只需保存一份即可。因此,实际镜像的硬盘占用空间比上面列表中镜像大小的总和要小得多。
5) 虚悬镜像:仓库名和标签都是 <none> 的镜像,如上面列表的第四个镜像。这是由于官方镜像维护,当发布新版本后,重新 docker pull 时,原有的镜像名被转移到新下载的镜像上,而旧的镜像上的名称则被取消造成的。docker pull 和 docker build 都可能导致这种现象。虚悬镜像已经失去了存在的价值,可以通过命令 docker image prune 随意删除。
6) 中间层镜像:是一些无标签的镜像,是其他镜像所依赖的镜像,不应该删除,否则会导致其他镜像依赖丢失而出错。docker image ls 或docker images 只会显示顶层镜像,如果要显示包括中间层镜像在内的所有镜像,必须使用命令 docker image ls -a 或 docker images -a
7) 列出指定仓库下的所有镜像
8) 列出指定的镜像,即指定仓库名和标签
9) 使用过滤器参数 --filter 或 -f
10) 列出所有顶层镜像的摘要
11) 列出所有镜像的镜像ID,使用 -q 参数
12) 结合Go的模板用法
9、docker image rm 或 docker rmi 删除本地镜像
命令格式如下:
docker image rm [选项] 镜像1 [镜像2...]
或
docker rmi [选项] 镜像1 [镜像2...]
选项说明:
-f, --force 强制删除镜像
--no-prune Do not delete untagged parents
1) 上面的镜像1、镜像2 ... 可以是 镜像ID、镜像名或镜像摘要。
2) 对于docker image ls 或 docker images 列出的镜像ID,一般取前3个字符以上,只要能区分于别的镜像,就可以作为删除的参数了,如:
docker image rm f75
3) 镜像名,即 仓库名:标签 的组合,如:
docker image rm ubuntu:14.04
如果本地只有一个ubuntu镜像,也可以只要仓库名,如:
docker image rm ubuntu
4) 镜像摘要,可以通过 docker image ls --digests 获取,删除时:
docker image rm ubuntu@sha256:e348fbbea0e0a0e73ab0370de151e7800684445c509d46195aef73e090a49bd6
示例:
注意:
1) 删除行为分两类,一类是untagged,删除/取消某个标签;另一类是deleted,删除镜像的各层,即,物理删除。
2) 当镜像的某层被其他镜像依赖时,或基于这个镜像启动的容器存在(即使容器没有运行),镜像的deleted行为将不会执行。
3) 删除镜像前,应先删除依赖该镜像启动的容器,再删除该镜像。
10、结合docker image ls -q 批量删除镜像
删除所有仓库名为 redis 的镜像
$ docker image rm $(docker image ls -q redis)
或
$ docker rmi $(docker image ls -q redis)
删除所有在 mongo:3.2 之前的镜像
$ docker image rm $(docker image ls -q -f before=mongo:3.2)
或
$ docker rmi $(docker image ls -q -f before=mongo:3.2)
11、docker run 运行容器
命令格式如下:
docker run [选项] 镜像名
选项说明:
- -it:交互式终端模式。
- -d:后台运行容器。
- --name:为容器指定名称。
- -e:配置环境变量
- -p:映射主机端口到容器端口。
- --network:配置网络模式,不配置时,默认使用bridge桥接模式,详见:Docker网络模式
- --restart=always:配置容器开机自动启动
- -v:挂载本地存储的文件或目录
- -m:设置容器使用内存最大值,详见:基于Docker和Keepalived搭建MySQL8.0.30主主复制集群 第十小节
- --cpuset:绑定容器到指定CPU运行, 详见:基于Docker和Keepalived搭建MySQL8.0.30主主复制集群 第十小节
- --cpus:限制容器运行的CPU核数,可以使用小数,详见:基于Docker和Keepalived搭建MySQL8.0.30主主复制集群 第十小节
- --memory-swap:设置内存+swap的使用限额, 详见:基于Docker和Keepalived搭建MySQL8.0.30主主复制集群 第十小节
- --privileged=true:给容器开启所有的功能和特权,慎重配置该选项,因为可能有安全隐患
示例:
docker run --name mongo -p 27017:27017 -v /data/docker/data/mongo/data:/data/db -v /data/docker/data/mongo/conf:/data/configdb -v /data/docker/data/mongo/logs:/data/log/ -e MONGO_INITDB_ROOT_USERNAME=test -e MONGO_INITDB_ROOT_PASSWORD=123456 -e MONGO_INITDB_DATABASE=admin -v /etc/localtime:/etc/localtime --restart=always -d mongo:6.0.4
示例:
- 不使用 -d 选项时,直接在当前宿主机上显示执行结果
- 使用 -d 选项时,容器在后台运行,只返回容器的长ID(容器内的运行结果,可以通过 “docker logs 容器” 命令查看)
12、docker ps 或 docker container ls 列出容器。
命令格式如下:
docker container ls [选项]
或
docker ps [选项]
选项说明:
-a, --all 显示所有容器 (包括终止的容器)
-f, --filter filter 基于条件过滤结果
--format string 使用Go模板格式化显示结果
-n, --last int 显示最后创建的n个容器 (不论状态是什么) (默认是 -1)
-l, --latest 显示最后创建的那个容器 (不论状态是什么)
--no-trunc Don't truncate output
-q, --quiet 所有结果只显示容器ID
-s, --size 显示总的文件大小
示例:
以上示例列出最后创建的6个容器。
可见,会返回:容器ID、镜像名、容器中执行的命令、容器创建的时间、容器状态、容器暴露的端口、容器的名字。
13、docker stop 或 docker container stop 停止容器
命令格式如下:
docker container stop [选项] 容器1 [容器2...]
或
docker stop [选项] 容器1 [容器2...]
选项说明:
-t, --time int 等待多少秒以后终止容器 (默认是 10)
14、docker restart 或 docker container restart 重启容器
命令格式如下:
docker container restart [选项] 容器1 [容器2...]
或
docker restart [选项] 容器1 [容器2...]
选项说明:
-t, --time int 等待多少秒以后终止容器 (默认是 10)
15、docker start 或 docker container start 启动容器
命令格式如下:
docker container start [选项] 容器1 [容器2...]
或
docker start [选项] 容器1 [容器2...]
选项说明:
-t, --time int 等待多少秒以后终止容器 (默认是 10)
16、docker rm 或 docker container rm 删除容器
命令格式如下:
docker container rm [选项] 容器1 [容器2...]
或
docker rm [选项] 容器1 [容器2...]
选项说明:
-f, --force 强制删除运行中的容器(uses SIGKILL)
-l, --link 删除指定的链接
-v, --volumes 删除容器相关的数据卷
示例:
17、docker exec 进行运行的容器进行交互操作
在使用 -d 参数时,容器启动后会在后台运行。某些时候需要进入容器进行操作。
命令格式如下:
docker exec [选项] 容器 命令 [参数...]
选项说明:
-d, --detach Detached mode: 在后台运行命令
--detach-keys string Override the key sequence for detaching a container
-e, --env list 设置环境变量
-i, --interactive 提供标准输入流,用于交互操作
--privileged 为命令提供扩展权限
-t, --tty 终端
-u, --user string 用户名 or UID (格式: <name|uid>[:<group|gid>])
-w, --workdir string 容器中的工作目录
示例:
示例:
#进入my-mysql容器
docker exec -it my-mysql bash
#进入容器后,可以进入MySQL命令行客户端
mysql -uroot -p123456
示例:
#进入my-redis容器
docker exec -it my-redis /bin/bash
#进入容器后,不带密码进入redis命令行客户端
redis-cli
#进入容器后,带密码进入redis命令行客户端
redis-cli -h 127.0.0.1 -p 6379 -a 123456
18、docker logs 查看容器运行日志
命令格式如下:
docker logs [选项] 容器
选项说明:
-f 或 --follow:实时跟踪容器日志的输出,类似于使用tail -f命令查看文件。这允许用户查看日志的实时更新。
--since:仅显示在指定的时间之后生成的日志。用户可以通过提供时间戳来限制日志的显示范围。
-t 或 --timestamps:在日志条目前面显示时间戳。这有助于用户了解每条日志生成的具体时间。
--tail:仅显示最后几行日志,默认为显示所有日志。用户可以通过此选项限制显示的日志行数,例如只显示最后的100行。
示例:
# 实时跟踪显示my-admin容器最后20行的日志,日志中显示时间戳
docker logs -f -t --tail 20 my-admin
19、docker export 导出容器快照
导出容器的文件系统到一个 tar 压缩文件(.tar, .tar.gz, .tgz, .bzip, .tar.xz, or .txz),即,将容器快照导出到本地文件。
命令格式如下:
docker export [选项] 容器
选项说明:
-o, --output string 导出到文件,而非标准输出流,可以用 > 代替
示例:
20、docker import 导入 tar 镜像文件 / 容器快照为本地镜像
导入一个 tar 镜像文件(注意,不能是 docker save 打包的 tar 文件) / 容器快照文件(.tar, .tar.gz, .tgz, .bzip, .tar.xz, or .txz)为镜像。
命令格式如下:
docker import [选项] file|URL|- [镜像仓库名[:标签]]
选项说明:
-c, --change list 使用Dockerfile指令来创建镜像
-m, --message string 设置导入镜像的提交信息
注意:
1) 可以从本地文件系统,或指定URL中导入tar镜像文件 / 容器快照文件(.tar, .tar.gz, .tgz, .bzip, .tar.xz, or .txz)为镜像。
2) 可以通过指定 URL 或 - (dash) 来从标准输入流 STDIN 中直接获取数据。URL用于指向一个包含文件系统的镜像文件 (支持.tar, .tar.gz, .tgz, .bzip, .tar.xz, or .txz)。若是导入一个网络资源上的镜像文件,URL地址必须以 http:// 或 https:// 开头。
3) 建议一定要设置 镜像名,即 仓库名:标签, 不然会变成虚悬镜像。
示例:
示例:
从远程位置导入,这将创建一个新的未标记镜像。
$ docker import http://example.com/exampleimage.tgz
从本地文件导入,通过管道和标准输入导入到docker。
$ cat exampleimage.tgz | docker import - exampleimagelocal:new
导入时附带提交信息。
$ cat exampleimage.tgz | docker import --message "New image imported from tarball" - exampleimagelocal:new
从本地文件导入到docker。
$ docker import /path/to/exampleimage.tgz
从本地目录导入
$ sudo tar -c . | docker import - exampleimagedir
附带新的配置信息,从本地目录导入
$ sudo tar -c . | docker import --change "ENV DEBUG true" - exampleimagedir
21、docker save 保存本地镜像为tar镜像文件
保存一个或多个镜像为 tar 压缩文件(默认是写到标准输出流)。会保存镜像的名字(仓库名:标签)、完整信息。
命令格式如下:
docker save [选项] 镜像1 [镜像2...]
选项说明:
-o, --output string 写到指定 tar 文件中,可以用 > 替换
示例:
# 打包后的 images.tar 包含 postgres:9.6 和 mongo:3.4这两个镜像
docker save -o images.tar postgres:9.6 mongo:3.4
或
docker save > images.tar postgres:9.6 mongo:3.4
22、docker load 加载 tar 镜像文件为本地镜像
从一个 tar 压缩文件或标准输入中加载一个镜像。会加载镜像的名字(仓库名:标签)、完整信息,若本地镜像库(通过docker images查看)已经存在该镜像,会将已存在的镜像替换。
命令格式如下:
docker load [选项]
选项说明:
-i, --input string 从一个tar压缩文件中加载,可以用 < 替换
-q, --quiet 不显示加载过程的细节
示例:
23、docker save / load 与 export / import 对比分析
1) docker save / load 用于对本地镜像进行操作;docker export / import用于对容器快照进行操作;
2) docker save 打包后的文件比docker export打包后的文件大,因为容器快照文件将丢弃所有的历史记录和元数据信息,仅保存容器当时的快照状态;
3) docker load 和docker import都是将压缩包恢复成本地镜像;
4) docker load 不能对载入的镜像重命名;docker import可以为镜像指定新的名称(仓库名:标签);
5) docker load 只能加载 docker save打包后的文件,如果加载docker export 打包后的容器快照,将报错 open /var/lib/docker/tmp/docker-import-082344818/bin/json: no such file or directory;
6)docker import 既可以导入docker save打包后的文件,也能导入docker export打包后的容器快照,但导入docker save打包后的文件,来启动容器,容器将不能启动;
7) docker load 只能和 docker save 互操作;docker import 还可以导入网络上的 tar 镜像。
8) 很多无法使用互联网的安装场景(比如涉密场所),需要先使用 docker save 将已有的镜像导出为压缩包,然后将压缩包拷贝到涉密场所的服务器中,再使用 docker load 执行镜像导入。
24、docker image prune 清理none镜像(虚悬镜像:没被标记且没被其它任何镜像引用的镜像)
docker image prune -a 清理无容器使用的镜像。默认情况下,系统会提示是否继续。要绕过提示,请使用 -f 或 --force 标志。可以使用 --filter 标志使用过滤表达式来限制修剪哪些镜像。
例如,只考虑清理 24 小时前创建的镜像
$ docker image prune -a --filter "until=24h"
25、docker container prune 清理停止状态的容器
默认情况下,系统会提示是否继续。要绕过提示,请使用 -f 或 --force 标志。
默认情况下,所有停止状态的容器会被删除。可以使用 --filter 标志来限制范围。
选项说明:
--filter filter 配置过滤器 (e.g. 'until=<timestamp>')
-f, --force 不提示(默认会提示)
示例:
示例:
#删除 24 小时之前创建的停止状态的容器:
$ docker container prune --filter "until=24h"
26、docker volume prune 清理无容器使用的卷
27、docker network prune 清理没有被容器未使用的网络
28、docker system prune 清理所有没有使用的数据
包括废弃的镜像(虚悬镜像)、停止的容器、没有使用的网络、构建缓存等。
docker system prune -a 清理整个系统,只会保留真正在使用的镜像,容器,数据卷以及网络,未绑定容器的镜像也会被清除。因此,需要格外谨慎,不能在生产环境中运行prune -a命令
29、设置定时清理docker数据
通常可以设置定时任务来清除docker数据。
示例:当镜像占用磁盘空间很大时,设置如下的定时任务:
#每天凌晨1点,删除72小时之外所有没有被使用的镜像:
[root@develop-server]# crontab -e
0 1 * * * docker image prune -a --force --filter "until=72h"
30、docker system df 查看Docker整体磁盘使用率的概况
包括镜像、容器和(本地)volume,查看Docker使用了多少资源
31、docker build 从指定的 Dockerfile 构建镜像
示例:
docker build -t myimage:latest .
32、docker commit 从一个容器的更改创建一个新的镜像
示例:
docker commit my-container new_image_name:tag
33、docker network ls 列出所有 Docker 网络
示例:
docker network ls
34、docker network create 创建一个新的 Docker 网络
命令格式如下:
docker network create --subnet 子网IP/掩码 子网名
示例:
## 创建子网
docker network create --subnet 192.168.100.0/24 --gateway=192.168.100.1 my-net
35、docker network connect 连接一个容器到一个网络
示例:
docker network connect my_network my-container
36、docker network disconnect 断开一个容器与一个网络的连接
示例:
docker network disconnect my_network my-container
37、docker network inspect 查看容器网络IP的占用情况
示例:
docker network inspect my-container
38、docker inspect my-container | grep IPAddress 查看容器的ip地址
39、docker volume ls 列出所有 Docker 数据卷
示例:
docker volume ls
40、docker volume create 创建一个新的数据卷
示例:
docker volume create my_volume
41、docker volume rm 删除数据卷
示例:
docker volume rm my_volume
42、docker tag 给镜像打标签
示例:
docker tag myimage:latest myrepository/myimage:latest
43、docker push 推送镜像
示例:
docker push myrepository/myimage:latest
44、docker inspect 以json格式查看容器、镜像、网络和卷等对象的详细信息
1)查看容器信息:
docker inspect <容器ID或名称>
示例:
docker inspect my-container
此命令将打印出有关指定容器的完整信息,包括容器ID、名称、镜像、IP地址、网络设置、挂载卷、环境变量等。
2)查看镜像信息:
docker inspect <镜像ID或名称>
示例:
docker inspect nginx
此命令将显示有关指定镜像的完整信息,包括镜像ID、标签、大小、创建时间、挂载点、端口映射等。
3)查看网络信息:
docker inspect <网络ID或名称>
示例:
docker inspect bridge
此命令将显示有关指定网络的详细信息,包括网络ID、名称、驱动程序、子网、网关、IP范围等。
4)查看卷信息:
docker inspect <卷名>
示例:
docker inspect my-volume
此命令将显示指定卷的详细信息,包括卷名、路径、驱动程序、容器挂载等。
除了上述常见用法,docker inspect还支持一些其他参数来进一步定制输出的结果。以下是一些常用参数:
5)--format=<模板>:使用Go模板语法来指定输出的格式。
示例:
docker inspect --format='{{.Name}}: {{.State.Status}}' my-container
该命令将输出指定容器的名称和状态,使用自定义的格式。
6)--type=<类型>:仅显示指定类型的对象信息。
示例:
docker inspect --type=image nginx
此命令将仅显示有关镜像的详细信息,而过滤掉其他类型的对象。
7)--size:显示镜像的大小。
示例:
docker inspect --size nginx
此命令将在镜像的详细信息中包含镜像大小。
8)结合grep来查询
示例:
#查看my-mysql容器的ip地址:
docker inspect my-mysql | grep IPAddress
45、docker cp :用于容器与宿主机之间的数据拷贝。
命令格式如下:
#从容器复制文件到宿主机目录
docker cp [选项] 容器:源路径 宿主机路径
#从宿主机目录复制文件到容器
docker cp [选项] 宿主机源路径 容器:目标路径
示例:
#复制宿主机文件到容器:
docker cp check_database_mysql_linux.pl spn-mysql:/check_database_mysql_linux.pl
docker cp check_database_mysql_linux.sh spn-mysql:/check_database_mysql_linux.sh
#从容器复制文件到宿主机:
docker cp spn-mysql:/192.168.111.88_linux_mysql_chk.xml .
docker cp spn-mysql:/etc/mysql/mysql.cnf .
docker cp my.cnf mysql5.7:/etc/my.cnf