Docker常用操作和命令

news2024/11/25 5:33:05

文章目录

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1846060.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MEMS环境传感器生产测试的挑战与未来趋势

微机电系统 (MEMS) 环境传感器无处不在&#xff0c;默默地支撑着我们日常生活中众多设备的功能。从智能手机和可穿戴设备到智能家居和工业自动化&#xff0c;这些微型产品可以测量温度、压力、湿度和大量其他环境参数。 由于环境监测需求不断增长以及空气质量严格法规的实施&am…

一站式家装服务管理系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;装修风格管理&#xff0c;主材管理&#xff0c;用户管理&#xff0c;基础数据管理 前台账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;装修风格&#xff0…

极狐GitLab落户香港科学园并成功发布AI产品驭码CodeRider国际版

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab &#xff1a;https://gitlab.cn/install?channelcontent&utm_sourcecsdn 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署…

189.二叉树:将有序数组转换为二叉搜索树(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* Tre…

canvas绘制红绿灯路口(二)

系列文章 canvas绘制红绿灯路口&#xff08;一&#xff09; 无图不欢&#xff0c;先上图 优化项&#xff1a; 一&#xff1a;加入人行道红绿信号 二&#xff1a;加入专用车道标识&#xff08;无方向标识时采用专用车道标识&#xff09; 三&#xff1a;东南西北四项路口优化绘…

汇凯金业:现货黄金投资平仓策略有哪些

现货黄金作为全球投资者广泛关注与参与的财富增值途径&#xff0c;其双向交易制度为市场参与者在不同行情下提供了盈利的可能。然而&#xff0c;如何在波动的市场中把握最佳的平仓时机&#xff0c;从而最大化收益&#xff0c;是所有投资者心中的疑问。正确的平仓策略可以说是现…

【GD32F303红枫派使用手册】第二十节 SPI-SPI NAND FLASH读写实验

20.1 实验内容 通过本实验主要学习以下内容&#xff1a; SPI通信协议&#xff0c;参考19.2.1东方红开发板使用手册 GD32F303 SPI操作方式&#xff0c;参考19.2.2东方红开发板使用手册 NAND FLASH基本原理 SPI NAND介绍 使用GD32F303 SPI接口实现对GD5F1GQ5UEYIGY的读写…

深度学习 --- stanford cs231学习笔记四(训练神经网络的几个重要组成部分之一,激活函数)

训练神经网络的几个重要组成部分 一 1&#xff0c;激活函数&#xff08;activation functions&#xff09; 激活函数是神经网络之于线性分类器的最大进步&#xff0c;最大贡献&#xff0c;即&#xff0c;引入了非线性。这些非线性函数可以被分成两大类&#xff0c;饱和非线性函…

Nacos 2.x 系列【17】健康保护阈值

文章目录 1. 概述2. 案例演示2.1 设置阈值2.2 未触发2.3 触发 1. 概述 Nacos 支持通过配置健康保护阈值&#xff08;ProtectThreshold&#xff09;防止因过多实例故障&#xff0c;导致所有流量全部流入剩余实例&#xff0c;继而造成流量压力将剩余实例被压垮形成的雪崩效应。 …

神经网络模型的量化简介(工程版)

1.量化简介 模型量化&#xff08;Model Quantization&#xff09;是深度学习中一种优化技术&#xff0c;旨在减少模型的计算和存储需求&#xff0c;同时尽量保持模型的性能。具体来说&#xff0c;模型量化通过将模型的权重和激活值从高精度&#xff08;通常是32位浮点数&#…

昇思25天学习打卡营第3天 | 数据集

内容介绍&#xff1a;数据是深度学习的基础&#xff0c;高质量的数据输入将在整个深度神经网络中起到积极作用。MindSpore提供基于Pipeline的数据引擎&#xff0c;通过数据集&#xff08;Dataset&#xff09;实现高效的数据预处理。其中Dataset是Pipeline的起始&#xff0c;用于…

一些使用注意(XPTable控件使用说明十)

当XPTABLE放到线程中&#xff0c;列数据很多&#xff0c;不出现滚动条的解决代码&#xff1a; /// 这里神奇的代码&#xff0c;解决线程中XPTABLE 不出滚动条问题 , 执行UI相关的操作this.Invoke(new Action(() >{ // 列头&#xff0c;一行空的&#xff0c;这里列头设置…

AI全栈之logo生成:执文,描摹,妙哉~

前言 前几日体验了国产的AI-Agents产品coze 它是一种能够自主执行任务、与环境进行交互并根据所获取的信息做出决策和采取行动的软件程序 并且可以自己去创建属于自己的AIBot&#xff0c;还是很有意思的&#xff0c;大家可以去体验体验 在体验过程中&#xff0c;我发现在创…

echarts+vue2实战(一)

目录 一、项目准备 二、(横向分页)柱状图 2.1、动态刷新 2.2、UI调整 2.3、分辨率适配 三、(竖向平移)柱状图 3.1、平移动画 3.2、不同数值显示不同颜色 四、(下拉切换)折线图 4.1、切换图表和分辨率适配 4.2、UI调整 五、(三级分类)饼图 5.1、数据切换 六、圆环…

基于卷积神经网络的目标检测

卷积神经网络基础知识 1.什么是filter 通常一个6x6的灰度图像&#xff0c;构造一个3*3的矩阵&#xff0c;在卷积神经网络中称之为filter,对&#xff16;x6的图像进行卷积运算。 2.什么是padding 假设输出图像大小为nn与过滤器大小为ff&#xff0c;输出图像大小则为(n−f1)∗(…

qt经典界面框架

目的 其实就是一个简单的界面显示&#xff0c;是很常用的形式。 说起来简单也是简单&#xff0c;但当初&#xff0c;刚开始做时&#xff0c;感觉非常的复杂&#xff0c;不知如何下手。 现在感觉简单多了。 这个框架利用了QT的现成的MainWindow与QDockWidget&#xff0c;这样就…

Android SurfaceFlinger——SF与HWC交互流程(六)

在上一篇 HWC2On1Adapter 初始化完成后&#xff0c;调用 initWithDevice() 实例化 HwcHal 对象&#xff0c;然后创建高级接口&#xff08;IComposer&#xff09;&#xff0c;使得调用者能够通过这个接口与硬件进行交互。这里我们就来看一下 HwcHal 和 IComposer 的初始化流程。…

超级ai 必须有个,超级大的词表,必须是个向量库 faiss is all you need

说明优点图像表示流程代码实现如下全部代码 说明 使用极其庞大的词表在模型压缩和图像token化方面带来了显著优势。由于词表巨大&#xff0c;我们不得不利用向量数据库对词表进行搜索&#xff0c;以找到最匹配的token。预测出的token会再次通过嵌入矩阵&#xff08;em&#xf…

短剧片源授权,类目丰富优惠多,抢先一步更新你的短剧系统片库!

前言 如今的短剧作为一种新兴的视听艺术形式&#xff0c;正以其独特的魅力迅速占领市场高地。为了满足广大短剧爱好者和从业者的需求&#xff0c;我们提供短剧片源授权服务&#xff0c;凭借剧场独家提供的丰富片源&#xff0c;助力您轻松更新短剧系统片库&#xff0c;抢占市场…

不见五陵高管墓,无花无酒锄做田

不见五陵高管墓&#xff0c;无花无酒锄做田 Golang 通用代码生成器仙童 2.4.0 电音仙女尝鲜版七已发布&#xff0c;此版本测试修复了 PostgreSQL 数据库自动反射功能。此版本更新修复了前端代码生成器&#xff0c;并修复了前端多对多界面的缺陷。PostgreSQL 的数据库反射功能刚…