繁体   English   中英

如何在图像构建之后/之后自动运行docker容器?

[英]How can I automatically run a docker container on/after image build?

我是码头工人的新手,如果我错过了一些明显的东西,我很抱歉

我对Dockerfile的计划。

  1. 拉tomcat:7.0
  2. 启动服务器
  3. 下载帮助文件并解压缩。
  4. 下载所需的war文件并将其重命名为ROOT.war。

我已经设法通过手动运行这些命令来完成此操作。

docker run -it --rm -p 8888:8080 tomcat:8.0

然后手动执行wget和重命名,虽然我希望这一切都在docker文件中完成。

这是我到目前为止所做的。

FROM tomcat:7.0

RUN /bin/bash -c "cd /usr/local/tomcat/webapps"


RUN /bin/bash -c "wget -O files.zip https://***"
RUN /bin/bash -c "unzip files.zip"

RUN /bin/bash -c "rm -r ROOT"
RUN /bin/bash -c "wget -O ROOT.war https://***"

虽然我不知道如何从早期的docker run -it --rm -p 8888:8080 tomcat:8.0

我已经采取了该行从官网上的Tomcat 这里 我注意到他们提到了这个Run the default Tomcat server (CMD ["catalina.sh", "run"]):但我不知道如何实现它。

Dockerfile的作用是创建一个图像而不是一个容器。

当你做docker build -t <tagname> . 如果你运行docker images ,将会看到结果(标记)。

然后,您可以运行该图像以创建容器。

您还可以在Dockerfile指定要运行的CMD (默认情况下)。 那就是(我认为)

CMD [ "catalina.sh", "run" ] 

所以:

docker build -t my_tomcat_app .
docker run -d -p 8888:8080 --name my_tomcat_container my_tomcat_app

这将从您的图像创建一个容器,并运行CMD所说的任何内容。 你可以用docker exec在里面戳

docker exec -it my_tomcat_container bash

但它会保持运行(因为-d标志)并显示在docker ps

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM