Skip to content

container

命令

命令(全)示例操作备注
docker container run <image name >创建容器
docker container ls列出容器(up)
docker container ls -a列出容器(up & down)
docker container ls -aq列出容器ID
docker container ps -aq列出容器ID
docker container stop <name or ID>停止容器
docker container rm <name or ID>删除容器-f 强制删除
docker container attach < container id>容器转为前台运行
docker container commit <container id > < tag >docker container commit 2d34 loveagri/nginx:1.0将一个停止的容器构建一个惊喜那个

run参数

docker run

参数意义示例
-i表示保持容器的标准输入开放
-t分配一个伪终端
-it以交互模式运行容器,允许与容器进行交互docker run -it image_name`
-d--detach在后台以守护进程模式运行容器。
--name为容器指定一个名称(可以根据需要更改为您喜欢的名称)。docker run --name con
-p 80:80将主机的端口 80 映射到容器的端口 80
-v挂载主机上的文件或目录到容器内部。docker run -v host_path:container_path image_name
-e设置容器的环境变量。docker run -e ENV_VARIABLE=value image_name
--restartnoon-failure[:max-retries]alwaysunless-stopped指定容器在退出时的重启策略。docker run --restart=always image_name
--link将容器连接到另一个容器,在两个容器之间建立网络连接。docker run --link container_name:image_alias image_name
--dns指定容器使用的自定义 DNS 服务器。docker run --dns 8.8.8.8 image_name
--dns-search指定容器的 DNS 搜索域。docker run --dns-search example.com image_name
--cap-add--cap-drop增加或删除容器的 Linux 能力,用于控制容器的权限。docker run --cap-add=SYS_ADMIN image_name
--privileged给容器赋予特权,可以访问主机的设备。docker run --privileged image_name
--tmpfs在容器内创建临时文件系统,用于存储临时数据。docker run --tmpfs /tmp image_name
--ulimit设置容器的资源限制,如最大打开文件数、最大进程数等。docker run --ulimit nofile=1024:1024 image_name`
--security-opt设置容器的安全选项,如 AppArmor 配置、Seccomp 配置等。docker run --security-opt seccomp:unconfined image_name
--cpu-shares设置容器的 CPU 份额,用于控制 CPU 资源的分配。 docker run --cpu-shares 512 image_name
--memory设置容器可使用的内存限制。docker run --memory 1g image_name
--network指定容器使用的网络模式。docker run --network bridge image_name
--hostname设置容器的主机名。docker run --hostname my_container image_name
--user指定容器运行时的用户名或 UID。docker run --user username image_name
--volume-driver指定容器使用的卷驱动程序。docker run --volume-driver my_driver image_name
--shm-size设置容器的共享内存大小docker run --shm-size 2g image_name
--add-host向容器的 /etc/hosts 文件添加自定义主机名和 IP 映射。docker run --add-host myhost:192.168.0.100 image_name
--read-only将容器的文件系统设置为只读模式。docker run --read-only image_name25
–cpu-quota设置容器的 CPU 配额,以微秒为单位docker run --cpu-quota=50000 image_name
--cpu-period设置容器的 CPU 周期,以微秒为单位。docker run --cpu-period=100000 image_name
--dns-option为容器的 DNS 配置添加自定义选项docker run --dns-option=timeout:5 image_name
--sysctl设置容器的内核参数docker run --sysctl net.ipv4.ip_forward=1 image_name
--label为容器添加标签,用于识别和组织容器docker run --label env=production image_name
--workdir设置容器的工作目录docker run --workdir /app image_name
--rm容器退出时自动删除容器。这在临时容器中非常有用
--env-file从文件中读取环境变量

批量删除或清理

sh
docker container rm $(docker container ps -aq)

docker system prune -a -f # 可以快速对系统进行清理,删除停止的容器,不用的image,等等

detach & attach模式

sh
# attach
docker container run -p 80:80 nginx 

# detach 容器会在后台执行
docker container run -d -p 80:80 nginx

日志

sh
docker container logs <container id>

# dynamic tracking logs
docker container logs -f <container id>

交互式进入container

sh
# 直接进
docker container run -it busybox sh

# container detach模式进
docker container exec -it <container id> sh

容器持续运行

在 Docker 中,默认情况下,容器会在其主进程(PID 1)退出时停止运行。要让一个容器持续运行(即使没有前台进程),可以通过以下方法实现:

方法 1:运行一个永不退出的命令

使用 tail -f /dev/nullsleep infinity 作为容器的前台进程(这些命令会永久挂起,但不会消耗 CPU 资源):

sh
docker run -d --name my_container ubuntu tail -f /dev/null

docker run -d --name my_container ubuntu sleep infinity

方法 2:使用交互式终端(-it

适用于需要保持容器活跃并随时交互的场景:

sh
docker run -it --name my_container ubuntu bash