[root@VM-8-16-centos ~]# docker run --name nginx-container -p 80:80 -d nginx docker: Error response from daemon: Conflict. The container name "/nginx-container" is already in use by container "c697df30ec69e891a27d09bf67032d5363edebb41787d92214ddad15872a8d9d". You have to remove (or rename) that container to be able to reuse that name. See 'docker run --help'.
时间: 2024-02-28 07:57:48 浏览: 245
这个错误提示是因为你之前已经使用了名为 `nginx-container` 的容器,并且该容器还在运行中。Docker 不允许创建同名的容器,因此需要先停止并删除该容器才能重新使用该名称。
你可以使用以下命令停止并删除名为 `nginx-container` 的容器:
```
docker stop nginx-container
docker rm nginx-container
```
然后再使用以下命令重新创建并启动名为 `nginx-container` 的容器:
```
docker run --name nginx-container -p 80:80 -d nginx
```
这样,你就可以在主机的 80 端口上访问 Nginx 容器内的 Web 服务了。
相关问题
[root@VM-8-16-centos ~]# docker run --name nginx-container -p 80:80 -d nginx c697df30ec69e891a27d09bf67032d5363edebb41787d92214ddad15872a8d9d docker: Error response from daemon: driver failed programming external connectivity on endpoint nginx-container (946920bceb47bc7836d819268a15f5bfb2416521d65c84ef34a3239bb04a050f): Error starting userland proxy: listen tcp4 0.0.0.0:80: bind: address already in use.
这个错误提示是因为在主机上的 80 端口已经被占用了,Docker 无法将容器内的 80 端口映射到主机的 80 端口上。可能是因为主机上已经运行了其他的 Web 服务,导致端口冲突。
你可以使用以下命令查看哪个进程占用了 80 端口:
```
sudo lsof -i :80
```
然后可以根据该命令的输出结果,杀掉占用 80 端口的进程。
如果不想杀掉该进程,可以考虑将 Docker 容器的端口映射到主机的其他端口上,比如将容器的 80 端口映射到主机的 8080 端口上:
```
docker run --name nginx-container -p 8080:80 -d nginx
```
这样,就可以通过访问 http://localhost:8080 来访问 Nginx 容器内的 Web 服务了。
version: "3" services: centos7: image: centos:7 command: tail -f /dev/null volumes: - php-bin:/usr/local/bin/php networks: - centos7-network php: image: php:7.4 volumes: - php-bin:/usr/local/bin/php networks: - centos7-network nginx: image: nginx:latest ports: - "80:80" networks: - centos7-network networks: centos7-network: driver: bridge volumes: php-bin: driver: local
您修改了配置文件中的 `volumes` 部分,将 `php-bin` 定义为映射,并指定了驱动程序。这应该是解决 `volume 'php-bin' must be a mapping not a string` 错误的正确方法之一。
现在,请确保您在终端中使用 `docker volume create` 命令创建了 `php-bin` 目录。例如:
```
docker volume create php-bin
```
然后,使用 `docker-compose up` 命令启动容器。这应该会将 `php-bin` 目录挂载到 `centos7` 和 `php` 服务中的 `/usr/local/bin/php` 目录中。
注意,如果您已经在文件系统上创建了 `php-bin` 目录,则这些目录将被映射到容器中。如果这些目录不存在,则会在容器启动时创建它们。
阅读全文