服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

在Docker运行时使用ENTRYPOINT和CMD在Centos 7 OS Docker容器中启动sshd

我知道我可以在Docker docker run <debug_container_id>的CentOS 7基本Docker容器中启动sshd CMD ["/usr/sbin/sshd","-D"] ,因为我在别处看到过它 https://stackoverflow.com/a/25449705/1258525 https://engineering.riotgames.com/news/jenkins-ephemeral-docker-tutorial https://github.com/CentOS/CentOS-Dockerfiles/blob/master/ssh/centos7/Dockerfile 当我运行我的容器时我无法启动sshd,我认为这与我的ENTRYPOINT中的ENTRYPOINT和CMD组合有关。 我采取的步骤: docker run –name="<debug_container_id>" -d <debug_image> docker exec <debug_container_id> ps aux 你可以看到我的ENTRYPOINT ,“dotnet TSL.Security.Service.dll”与docker exec <debug_container_id> ps aux的输出中的“/ usr / sbin / sshd -D” 我目前的工作是让sshd运行: docker exec -d <debug_container_id> bash -c "/usr/sbin/sshd -D" 用我的解决方法,我可以进入容器。 所以你可以把ENTRYPOINT和CMD结合起来, 这里虽然文章的作者正在构build一个单一的string命令来执行使用ENTRYPOINT和CMD的组合。 我正在尝试执行两个命令string。 在重读那篇文章之后,我开始意识到,使用ENTRYPOINT和CMD一起被用来构build一个单一的string命令,在docker run用户可以覆盖CMD参数的情况下执行。 在我试图在容器运行中执行两条命令的地方,所以我尝试将我的入口点更改为以下,并完全删除CMD: ENTRYPOINT ["dotnet", "TSL.Security.Service.dll", […]