[英]How can I automatically run a docker container on/after image build?
我是码头工人的新手,如果我错过了一些明显的东西,我很抱歉
我对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 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.