Docker常用操作和命令

文章目录

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.rhkb.cn/news/356273.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务端代码编写中MySql大小写在Java中报错问题解决

报错信息&#xff1a; 原因&#xff1a;MySql和Java变量大小写产生的冲突。 经过查阅各个博客等&#xff0c;得出浅显结论&#xff08;不一定对&#xff09;&#xff1a;MySql大小写不敏感&#xff0c;Java大小写敏感&#xff0c;当Javabean转为MySql数据库表时&#xff0c;Ja…

《QT实用小工具·七十一》基于Qt+Qml开发的文件传输工具

1、概述 源码放在文章末尾 该项目基于QTQML实现了文件传输的功能&#xff0c;可以在局域网环境下使用(热点)&#xff0c;扫描使用UDP&#xff0c;传输使用TCP&#xff0c;每一个文件传输使用独立的线程进行处理&#xff0c;高效便捷。 开发环境 使用Qt/Qml开发 QT版本&#x…

韩顺平0基础学java——第28天

p569-591 坦克大战&#xff01;&#xff08;绘图监听事件线程文件处理&#xff09; 绘图 绘图原理 Component类提供了两个和绘图相关最重要的方法: 1. paint(Graphics g)绘制组件的外观 2. repaint()刷新组件的外观。 当组件第一次在屏幕显示的时候,程序会自动的调用paint()…

基于PSO粒子群优化的CNN-GRU的时间序列回归预测matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 卷积神经网络&#xff08;CNN&#xff09; 4.2 CNN-GRU模型架构 4.3 CNN-GRU结合PSO的时间序列预测 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软…

Ubuntu 18.04 安装 PCL 1.14.1

在进行科研项目时&#xff0c;我们常常需要将 C 和 Python 结合起来编程。然而&#xff0c;每次将 PCL&#xff08;Point Cloud Library&#xff09;的内容添加到 CMakeLists.txt 文件中时都会报错。在深入分析后&#xff0c;我们推测可能是当前使用的 PCL 1.8 版本与现有程序不…

人工智能在空间转录组学领域的最新研究进展|顶刊速递·24-06-22

小罗碎碎念 本期推文的主题&#xff1a;人工智能在空间转录组学领域的最新进展 提到空间转录组学就不可避免会与单细胞测序、免疫治疗以及肿瘤微环境扯上关系&#xff0c;所以这也是当下的热点之一。 我个人认为这一部分门槛相对于影像组学和病理组学较高&#xff0c;需要具备…

MFC绘制哆啦A梦

文章目录 OnPaint绘制代码完整Visual Studio工程下载其他卡通人物绘制 OnPaint绘制代码 CPaintDC dc(this); // 用于绘画的设备上下文CRect rc;GetWindowRect(rc);int cxClient rc.Width();int cyClient rc.Height();// 辅助线HPEN hPen CreatePen(PS_DOT, 1, RGB(192, 192,…

STM32通过SPI软件读写W25Q64

文章目录 1. W25Q64 2. 硬件电路 3. W25Q64框架图 4. 软件/硬件波形对比 5. 代码实现 5.1 MyI2C.c 5.2 MyI2C.h 5.3 W25Q64.c 5.4 W25Q64.h 5.5 W25Q64_Ins.h 5.6 main.c 1. W25Q64 对于SPI通信和W25Q64的详细解析可以看下面这篇文章 STM32单片机SPI通信详解-CSDN博…

概念描述——TCP/IP模型中的两个重要分界线

TCP/IP模型中的两个重要分界线 协议的层次概念包含了两个也许不太明显的分界线&#xff0c;一个是协议地址分界线&#xff0c;区分出高层与低层寻址操作&#xff1b;另一个是操作系统分界线&#xff0c;它把系统与应用程序区分开来。 高层协议地址界限 当我们看到TCP/P软件的…

MySQL数据备份操作步骤

常见的数据备份命令 备份命令备份速度恢复速度介绍功能适用场景lvm2快照快快一般、支持几乎热备、速度快一般中小型数据量的备份cp快快物理备份、灵活性低很弱少量数据备份xtrabackup较快较快实现innodb热备、对存储引擎有要求强大较大规模的备份mysqldump慢慢逻辑备份、适用所…

【React】AntD组件---极客园--01.项目前置准备

项目搭建 基于CRA创建项目 CRA是一个底层基于webpack快速创建React项目的脚手架工具 # 使用npx创建项目 npx create-react-app react-jike# 进入到项 cd react-jike# 启动项目 npm start调整项目目录结构 -src-apis 项目接口函数-assets 项目资源文件&…

【算法训练记录——Day32】

Day32——贪心算法Ⅱ 1.leetcode122买卖股票的最佳时机II2.leetcode55跳跃游戏3.leetcode45跳跃游戏II4.eetcode1005K次取反后最大化的数组和 目标&#xff1a; leetcode122买卖股票的最佳时机IIleetcode55跳跃游戏leetcode45跳跃游戏IIleetcode1005K次取反后最大化的数组和 1…

在Windows上用MinGW编译OpenCV项目运行全流程

一、准备软件 OpenCV源码CMake工具MinGW工具链&#xff08;需要选用 posix 线程版本&#xff1a;原因见此&#xff09; 二、操作步骤 官网提供了VC16构建版本的二进制包&#xff0c;但是没有给出GCC编译的版本。所以如果使用MinGW进行构建&#xff0c;那就只能从源码开始构建…

智慧公厕系统厂家的核心技术与光明源应用案例

随着城市化进程的加快和智慧城市建设的推进&#xff0c;智慧公厕系统在提升公共服务质量和用户体验方面发挥了重要作用。智慧公厕系统厂家的核心技术是确保这一系统高效运转和用户满意度的关键。以下将介绍智慧公厕系统厂家的核心技术&#xff0c;并通过光明源的应用案例展示其…

WordPress简单好看的线报主题模板源码

安装说明 到WordPress管理后台中的「外观」-「主题」中点击「添加」&#xff0c;选择baolog的主题包进行上传安装并启用即可。 提示&#xff1a;为了防止主题不兼容&#xff0c;请在安装主题前进行数据备份&#xff0c;防止数据字段重复覆盖等情况发生。 源码截图 源码下载 …

cefsharp 修改请求头request.Headers,以实现某种请求验证(v100+已测试)含主要源码和注释

(一)目的:cefsharp实现修改请求头 Tip:网上搜的很多代码都无法实现(要么版本较低,方法有变,要么就行不通),较多的错误是:集合属性只读。其中一个bili网友的测试方法注解一张图,但没有具体代码。参考一下。 (二)实现方法 2.1 创建对象 ChromiumWebBrowser home…

在敏捷项目管理中实施 Scrum 方法

在本文中&#xff0c;我将阐明敏捷项目管理中的 Scrum 流程。我将深入探讨 Scrum 方法论中不可或缺的角色。本文将全面概述敏捷开发中的 Scrum 流程。我将解释 Scrum 的核心组件&#xff0c;详细探索端到端 Scrum 流程。在本文结束时&#xff0c;您将清楚地了解 Scrum 的工作原…

【Linux】多线程2——线程控制

1.POSIX线程库 pthread线程库是应用层的原生线程库&#xff1a; 应用层指的是这个线程库并不是系统接口直接提供的&#xff0c;而是由第三方帮我们提供的。原生指的是大部分Linux系统都会默认带上该线程库。与线程有关的函数构成了一个完整的系列&#xff0c;绝大多数函数的名…

学习es6

1、let变量 2、const常量 3、解构赋值 4、模板字符串 5、简化对象写法 6、参数默认值 7、rest参数 8、扩展运算符 9、扩展对象方法 10、扩展数组方法 11、Set 12&#xff0c;Promise 13、Module模块

JMeter的基本概念

一、主流测试工具 1&#xff0c;Loadrunner HP Loadrunner是一种工业级标准性能测试负载工具&#xff0c;可以模拟上万用户实施测试&#xff0c;并在测试时可实时检测应用服务器及服务器硬件各种数据&#xff0c;来确认和查找存在的瓶颈 支持多协议:Web(HTTP/HTML)、Windows…