试图在码头工人中启动图像

时间:2015-12-22 19:37:55

标签: docker

我正在尝试执行此实验并输入以下命令:

sudo docker run -it --name bdu_spark2 -P -p 4040:4040 -p 4041:4041 -p 8080:8080 -p 8081:8081 bigdatauniversity/spark2:latest /etc/bootstrap.sh -bash

但是我收到以下错误。使用它的docker的端口8080与尝试使用它的其他软件之间是否存在冲突?我重新启动了docker并确保没有其他容器正在运行。感谢您的所有投入。

Error response from daemon: Cannot start container 3c62472fe5f8481e5ee957550078f06106b45fc6bffe25669272e2ea924b5f36: failed to create endpoint bdu_spark2 on network bridge: Error starting userland proxy: listen tcp 0.0.0.0:8080: bind: address already in use

2 个答案:

答案 0 :(得分:3)

这通常是因为另一个容器在docker主机上使用8080端口引起的。

您可以通过运行以下命令查看正在运行的容器:$ sudo docker ps

停止其他容器,或选择其他主机端口将容器的8080映射到。

答案 1 :(得分:0)

在我使用MySQL的情况下,我没有意识到这是因为我已经在该端口上运行了本机MySQL。

docker run --name db --detach --env="MYSQL_ROOT_PASSWORD=123" --publish=3306:3306 mysql:latest

我做了一个netstat --all --numeric --program --inet --timers | grep 3306并注意到它给了我1418/mysqld。然后我做了一个ps aux | grep mysql并注意到/usr/sbin/mysqld启动的进程号是我主机上的本地MySQL实例,与容器无关。

仔细检查没有使用这些端口,尤其是8080,这对于独立的Web服务器非常常见,例如IDE附带的那些。

如果您使用的是该端口,则可以使用--publish选项指定主机端口不同但仍使用容器上的相同端口。即--publish=8081:8080,hostport:containerport。