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:拉取镜像地址。