Docker 常见容器问题
Docker 轻松学习
文章目录
- Docker 常见容器问题
- 一、Docker 是什么?
- 二、容器退出后,通过 docker container ls 命令查看不到,数据会丢失么?
- 三、如何停止所有正在运行的容器?
- 四、如何批量清理已经停止的容器?
- 四、如何获取某个容器的 PID 信息?
- 五、如何获取某个容器的 IP 地址?
- 六、如何给容器指定一个固定 IP 地址?
- 七、如何临时退出一个正在交互的容器的终端,而不终止它?
- 八、使用 docker port 命令映射容器的端口时,系统报错“Error: No public port ‘80’ published for xxx”?
- 九、可以在一个容器中同时运行多个应用进程么?
- 十、如何控制容器占用系统资源(CPU、内存)的份额?
- 十一、Docker启动报错 Error response from daemon
- 总结
一、Docker 是什么?
docker是一种技术,能使得应用在任何环境都能用的打包技术。打包出的东西叫镜像。
二、容器退出后,通过 docker container ls 命令查看不到,数据会丢失么?
容器退出后会处于终止(exited)状态,此时可以通过 docker container ls -a 查看,其中的数据也不会丢失。
代码如下(示例):
docker container ls -a
还可以通过 docker start 命令来启动它。只有删除掉容器才会清除所有数据。
docker start
三、如何停止所有正在运行的容器?
docker stop $(docker container ls -q)
四、如何批量清理已经停止的容器?
docker container prune
四、如何获取某个容器的 PID 信息?
docker inspect --format '{{ .State.Pid }}' <CONTAINER ID or NAME>
五、如何获取某个容器的 IP 地址?
docker inspect --format '{{ .NetworkSettings.IPAddress }}' <CONTAINER ID or NAME>
六、如何给容器指定一个固定 IP 地址?
docker network create -d bridge --subnet 172.0.0.1/16 my-net
docker run --network=my-net --ip=127.0.0.1 -itd --name=my-container busybox
七、如何临时退出一个正在交互的容器的终端,而不终止它?
Ctrl-p
Ctrl-q
八、使用 docker port 命令映射容器的端口时,系统报错“Error: No public port ‘80’ published for xxx”?
* 创建镜像时 Dockerfile 要通过 EXPOSE 指定正确的开放端口;
* 容器启动时指定 PublishAllPort = true。
九、可以在一个容器中同时运行多个应用进程么?
一般并不推荐在同一个容器内运行多个应用进程。如果有类似需求,可以通过一些额外的进程管理机制,比如 supervisord 来管理所运行的进程。
十、如何控制容器占用系统资源(CPU、内存)的份额?
在使用 docker create 命令创建容器或使用 docker run 创建并启动容器的时候,可以使用 -c|–cpu-shares[=0] 参数来调整容器使用 CPU 的权重;使用 -m|–memory[=MEMORY] 参数来调整容器使用内存的大小。
十一、Docker启动报错 Error response from daemon
Error response from daemon: driver failed programming external connectivity on endpoint gloomy_kirch
systemctl restart firewalld
systemctl restart docker
总结
遇到 Docker 问题不要怕,记下来,下次省的忘记了
希望这个博客能对你有所益处。我是轻王,我为自己代言。