docker命令没有运行

我是新来的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 

他们都没有工作,只是在terminal卡住了。

这应该工作

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

由于我读了上面的对话,看起来你已经收到了一串数字,意思是docker正在运行,只要点击localhost:3000就可以看到nginx正在运行。

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

如果卡住了,这也意味着泊坞窗正在运行,但不在后台。 通常,– --detach-d意味着docker将会提供一串长长的数字,告诉docker在后台运行应用程序,所以你不会在terminal中看到任何事情。

你会介意尝试下面的命令再次启动nginx吗?

 $ docker run -d -p 80:80 nginx:latest 

顺便说一句,所有以“docker container”开头的命令似乎都是来自docker的新命令。

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

“docker集装箱运行”的function应该与“docker运行”相同。

不知道为什么这两个命令之间的差异。

在我的情况下,我很less使用以“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...