尝试在docker中启动映像

尝试在docker中启动映像,docker,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,并确保没有其他容器正在运行。谢谢大家的意见

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

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

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

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


停止另一个容器,或者选择另一个主机端口将容器的8080映射到。

在我使用MySQL时,我没有意识到这是因为我已经在该端口上运行了一个本机MySQL

docker run --name db --detach --env="MYSQL_ROOT_PASSWORD=123" --publish=3306:3306 mysql:latest
我做了一个
netstat--all--numeric--program--inet--timers | grep3306
并注意到它给了我
1418/mysqld
。然后我做了一个
ps aux | grep mysql
,注意到是由
/usr/sbin/mysqld
启动的相同进程号,它是我主机上的本地mysql实例,与容器无关

仔细检查没有任何东西在使用这些端口,特别是8080,这对于独立web服务器非常常见,比如IDE附带的那些


如果正在使用该端口,则可以使用--publish选项将主机端口指定为不同的,但仍在容器上使用相同的端口。i、 e.
--publish=8081:8080
,主机端口:containerport。

您的端口8080似乎已经在使用中。与sudo netstat-tulpn核实哪个应用程序正在使用它,然后关闭它,或者从映射到容器的本地计算机更改端口,例如-p 8880:8080将端口更改为8082:8082似乎已经奏效。谢谢你们两位。