docker命令没有运行

时间:2017-10-21 17:32:29

标签: docker nginx

我是docker的新手,并尝试运行以下代码并获取以下错误。

Nihits-MacBook-Pro:~ nihit$ docker container run --publish 80:80 nginx

Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
bc95e04b23c0: Pull complete 
110767c6efff: Pull complete 
f081e0c4df75: Pull complete 
Digest: sha256:004ac1d5e791e705f12a17c80d7bb1e8f7f01aa7dca7deee6e65a03465392072
Status: Downloaded newer image for nginx:latest
docker: Error response from daemon: driver failed programming external connectivity on endpoint gracious_pare (0a28a065694108085e2b7533870d9d84889899baf5d4130c58c49c4736bb6b12): Error starting userland proxy: Bind for 0.0.0.0:80: unexpected error (Failure EADDRINUSE).
ERRO[0016] error waiting for container: context canceled 

我尝试了不同的端口代码,但所有代码都被卡住了,什么都做不了。

Nihits-MacBook-Pro:~ nihit$ docker container run --publish 3000:80 nginx
Nihits-MacBook-Pro:~ nihit$ docker container run --publish 8080:80 nginx

它们都没有工作,只是卡在终端上。

2 个答案:

答案 0 :(得分:3)

这应该有效

docker container run --publish 3000:80 nginx:latest

由于我阅读了上面的对话,看起来你收到了一长串数字意味着docker正在运行,只需点击你会看到运行nginx的网址localhost:3000

如果你的计算机上安装了apache,那么php通常使用port:80

如果卡住它也意味着docker正在运行但不在后台运行。 通常情况下,--detach-d表示docker会为您提供一长串数字,告诉docker在后台运行应用程序,这样您就不会看到终端中发生的任何事情。

答案 1 :(得分:2)

您是否介意尝试以下命令再次启动nginx?

$ docker run -d -p 80:80 nginx:latest
BTW,所有以“docker container”开头的命令似乎都是来自docker的新命令。

但是,根据https://docs.docker.com/edge/engine/reference/commandline/docker/

“docker container run”的功能应与“docker run”相同。

不确定为什么这两个命令之间存在差异。

在我的情况下,我很少使用以“docker container”开头的命令来执行我的容器。

如果容器成功启动,shell将返回如下消息:

sh-3.2# docker run -d -p 8080:80 nginx:latest
b0a5aa7965119c5b2705392b5b9e9640a4ab8edefda6722ee86da507229cdf05
sh-3.2#
sh-3.2# docker ps -a
CONTAINER ID   IMAGE         COMMAND            CREATED
b0a5aa796511   nginx:latest  "nginx -g 'dae...  About a minute ago...