跳到主要内容

Docker

1、基本命令

1.1、拉取docker镜像

docker pull docker.io/library/centos:7.9.2009

1.2、运行docker

docker run -it  docker.io/library/centos:7.9.2009 /bin/bash 

参数解释

  • -it 分配伪终端并保持标准输入打开,适合交互式操作。
  • /bin/bash 容器启动后运行的命令,这里是打开一个 Bash 终端。

1.3、查看所有docker实例

docker ps -a

参数解释

  • -a 列出所有容器,包括停止的,如果不加-a,则只显示正在运行的

1.4、进入docker内部

docker  exec -it <container ID or name> /bin/bash

1.5、查看所有镜像

docker images

1.6、清理docker镜像

1.6.1、删除未使用的镜像

docker image prune

1.6.2、强制删除未使用的镜像

docker image prune -a

这将删除所有未被容器使用的镜像,包括悬挂的镜像。

1.6.3、删除特定镜像

docker rmi <image_id_or_name>

1.6.4、导出容器到文件

docker export <container_id>  -o  image.tar

1.6.5、导出镜像到文件

docker save -o image.tar <repository_name>:<tag> or <image_id>

1.6.5、从文件加载成docker镜像

cat image.tar | docker import - <repository_name>:<tag>

其中,<repository_name>是你要上传到的镜像仓库名称,<tag>是镜像的标签。

2、高阶命令

2.1、拉取并运行镜像

docker run --cap-add=SYS_PTRACE -d -it --net=bridge --name centos7 --privileged=true -w /youcmds/workspace -e "PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/" -e "LD_LIBRARY_PATH=/usr/local/lib64:/usr/local/lib:/usr/lib64:/usr/lib:/lib64:/lib" -p 1935-2935:1935-2935 -v /Users/yourcmds/workspace:/youcmds/workspace docker.io/library/centos:7.9.2009 /bin/bash 

参数解释

  • --cap-add 参数可以用于向 Docker 容器添加不同的权限,包括:

    NET_ADMIN: 允许容器拥有网络管理的能力。这意味着容器可以进行网络配置,比如更改接口的配置、添加或删除路由等。它赋予了容器更大的网络控制权限,适用于需要管理网络设置的应用场景。

    SYS_ADMIN:添加系统管理员权限,允许容器内的进程执行系统级别的管理操作,如挂载文件系统、设置时间、修改主机名等。

    SYS_PTRACE:添加系统追踪权限,允许容器内的进程使用 ptrace 系统调用,用于调试和监视其他进程。

    SYS_CHROOT:添加切换根目录权限,允许容器内的进程使用 chroot 系统调用,在指定的目录下创建一个新的根文件系统环境。

    SYS_MODULE:添加模块加载/卸载权限,允许容器内的进程加载和卸载内核模块。

    SYS_RAWIO:添加原始 I/O 权限,允许容器内的进程进行对设备的原始读写操作,绕过操作系统提供的文件系统抽象。

    SYS_TIME:添加时间管理权限,允许容器内的进程修改系统时间。

  • --net 设置docker的网络模式,常用的网络模式包括:

    bridge(桥接模式):默认模式,Docker 会创建一个虚拟网桥,容器通过这个桥接连接到主机的网络。适用于大多数常见场景。

    host(主机模式):容器直接使用主机的网络堆栈,适合对网络性能要求较高的应用,但会失去容器间的网络隔离。

    none(无网络模式):不连接任何网络,适合需要完全隔离的场景。

    container(容器模式):使新容器与另一个已存在的容器共享网络栈。这意味着它们共享同一个 IP 地址和端口。

    overlay(覆盖网络模式):用于跨多个 Docker 主机的集群环境(如 Docker Swarm 或 Kubernetes),允许容器在不同主机间通信。

  • -d:以后台模式运行容器。

  • --name centos7:为容器指定一个名称(centos7)。

  • -w /youcmds/workspace:设置容器的工作目录。

  • -e 设置环境变量。

  • -p 1935-2935:1935-2935:将主机的 1935-2935 端口映射到容器的同一端口范围。

  • -v /Users/yourcmds/workspace:/youcmds/workspace:将主机目录挂载到容器内的指定路径,实现文件共享。

  • docker.io/library/centos:7.9.2009:拉取镜像地址。