我是码头工人的新人,如果我错过了一些明显的话,那就很抱歉
我对Dockerfile的计划。
我已设法通过手动运行这些命令来实现此目的。
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 line
docker run -it --rm -p 8888:8080 tomcat:8.0
我已从官方Tomcat在线here获取该行。我注意到他们提到了这个Run the default Tomcat server (CMD ["catalina.sh", "run"]):
,但我不知道如何实现它。
答案 0 :(得分:8)
Dockerfile的作用是创建图像而不是容器。
当您执行docker build -t <tagname> .
时,如果您运行docker images
,则会看到结果(已标记)。
然后,您可以运行图像来创建容器。
您还可以在CMD
中指定要运行的Dockerfile
(默认情况下)。那就是(我认为)
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
中。