如何自动 运行 一个 docker 容器 on/after 镜像构建?
How can I automatically run a docker container on/after image build?
我是 docker 的新手,如果我遗漏了一些明显的东西,我深表歉意
我对 Dockerfile 的计划。
- 拉tomcat:7.0
- 启动服务器
- 下载帮助文件并解压缩。
- 下载所需的 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
,将会看到结果(已标记)。
然后您可以运行那个image创建一个容器。
您还可以在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
但它会保留 运行ning(因为 -d
标志)并出现在 docker ps
中。
我是 docker 的新手,如果我遗漏了一些明显的东西,我深表歉意
我对 Dockerfile 的计划。
- 拉tomcat:7.0
- 启动服务器
- 下载帮助文件并解压缩。
- 下载所需的 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
,将会看到结果(已标记)。
然后您可以运行那个image创建一个容器。
您还可以在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
但它会保留 运行ning(因为 -d
标志)并出现在 docker ps
中。