gpt4 book ai didi

tomcat - 如何在镜像构建时/构建后自动运行 docker 容器?

转载 作者:行者123 更新时间:2023-11-28 21:50:32 25 4
gpt4 key购买 nike

我是 docker 的新手,如果我遗漏了一些明显的东西,我深表歉意

我对 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 行docker run -it --rm -p 8888:8080 tomcat:8.0

我从官方 Tomcat 在线获取了这条线 here .我注意到他们提到了这个 Run the default Tomcat server (CMD ["catalina.sh", "run"]): 但我不知道如何实现它。

最佳答案

Dockerfile 所做的是创建一个图像,而不是容器。

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

然后您可以运行该镜像 来创建容器。

您还可以指定 CMDDockerfile 中运行(默认情况下) .那将是(我认为)

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 中.

关于tomcat - 如何在镜像构建时/构建后自动运行 docker 容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35230266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com