报错:

[root@web01 ~]# docker exec -it GAMES sh

Error response from daemon: container 8a1954ee774bcec4c384ad16a17f9f20d254edc4a2c632807b93c58d6de10512 is not running

[root@web01 ~]# docker exec -it GAMES sh

/ # [root@web01 ~]# docker exec -it GAMES sh

/ # [root@web01 ~]# 

发现进入过后很快啊就退出来了

查看容器退出或崩溃日志

容器退出必定有原因(例如 Web 服务启动报错、端口被占、缺少依赖或前台命令执行完毕直接结束):

Bash

docker logs --tail 50 GAMES

2026/10/18 07:08:01 [emerg] 1#1: bind() to 0.0.0.0:80 failed (98: Address in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address in use)
发现原因:80端口已经被占用了是容器起不来的根本原因

原因确定:
[root@web01 ~]# ss -tnulpn
tcp               LISTEN             0                  128                                   0.0.0.0:80                                 0.0.0.0:*                 users:(("nginx",pid=1306,fd=9),("nginx",pid=1300,fd=9))
tcp               LISTEN             0                  128                                   0.0.0.0:81                                 0.0.0.0:*                 users:(("nginx",pid=1306,fd=10),("nginx",pid=1300,fd=10))
这两个端口是我曾经在配置文件中已经部署过业务的端口

问题溯源

原因是当时启动容器的时候网络用的是

[root@web01 ~]# docker run -d --network host --name GAMES jasonyin2020/oldboyedu-games:v0.6

--network hsot
应该指明端口号的比较严谨
docker run -d --name GAMES -p 8088:80 --restart=always jasonyin2020/oldboyedu-games:v0.6

操作目的

本意是想进入该容器中拷贝相关文件这里顺便把命令也复习一下吧

docker cp <容器名或容器ID>:<容器内文件夹路径> <宿主机目标路径>