“docker logs”在尝试访问退出的容器时抛出错误

我想使用正式的Docker镜像来运行Consul

docker run -d consul -P 

-P应将Dockerfile中的所有EXPOSED端口映射到主机。 运行没有-P的命令工作得很好, docker ps显示这个:

 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES bc23fb8b61a6 consul "docker-entrypoint.sh" 3 seconds ago Up 1 seconds 8300-8302/tcp, 8400/tcp, 8500/tcp, 8301-8302/udp, 8600/tcp, 8600/udp jovial_booth 

当使用-P容器立即退出。 当我跑步

 docker logs bc23fb8b61a6 

我得到这个错误:

 Invalid flags before the subcommand. If these flags are for the subcommand, please put them after the subcommand. usage: consul [--version] [--help] <command> [<args>] Available commands are: […] 

我也试图从容器映射/var/log到本地目录,不幸的是它仍然是空的。

任何想法出了什么问题,我怎样才能访问容器的日志

您需要在consul命令之前放置-P参数(属于docker run ):

 docker run -d -P consul 

否则,由Consul解释,你会得到consul命令的语法错误信息。