关于 Docker 构建和本地 Docker 回购的问题
Questions on Docker Build and Local Docker Repo
我正在尝试使用以下命令创建 docker 图像。
docker build -t mytestapp .
我的DockerFile
看起来像这样
# Set the base image
FROM rhel7:latest
USER root
# Dockerfile author / maintainer
MAINTAINER Name <email.id@example.com>
# Update application repository list and install the Redis server.
RUN mkdir /usr/local/myapp/
ADD myapp-0.0.1-jar /usr/local/myapp/
RUN java -Dspring.profiles.active=qa -jar /usr/local/myapp/myapp-0.0.1.jar
# Expose default port
EXPOSE 8080
问题:
1) 我添加 JAR
文件的方式是否合适。在我准备好来自上述构建的图像后,它会在 container
上的 /usr/local
中可用吗?
2) 当我使用 docker build
命令构建映像时,构建映像是否默认推送到 docker 存储库中心。
由于 WAR 文件包含凭据,我不想将图像推送到 Docker Hub,但我们想使用 [= 推送到本地 Docker 注册表36=] 分发和推送 docker push
。
请说明。
回答您的问题:
Docker 建议使用 COPY
指令将单个文件添加到图像中。它将在 /usr/local/myapp/myapp-0.0.1-jar
的容器内可用
当您构建映像时,它将在您的本地 docker-host 上可用。它不会离开服务器,除非你明确告诉它。
我想给你的另一个提示是推荐的 docker 图片命名约定,即 [Repository/Author]/[Imagename]:[Version]
.
因此对于您的图像,它可能被称为 zama/mytestapp:1.0
如果您想将其推送到您的本地注册表中,您必须按照语法 [LocalRegistry:Port]/[Repository/Author]/[Imagename]:[Version]
.
命名您的图像
因此您的图片现在可能被称为 registry.example.com:5000/zama/mystestapp:1.0
如果您的注册表上有身份验证,您需要先 docker login
然后简单地使用 docker push registry.example.com:5000/zama/mystestapp:1.0
推送图像。
我正在尝试使用以下命令创建 docker 图像。
docker build -t mytestapp .
我的DockerFile
看起来像这样
# Set the base image
FROM rhel7:latest
USER root
# Dockerfile author / maintainer
MAINTAINER Name <email.id@example.com>
# Update application repository list and install the Redis server.
RUN mkdir /usr/local/myapp/
ADD myapp-0.0.1-jar /usr/local/myapp/
RUN java -Dspring.profiles.active=qa -jar /usr/local/myapp/myapp-0.0.1.jar
# Expose default port
EXPOSE 8080
问题:
1) 我添加 JAR
文件的方式是否合适。在我准备好来自上述构建的图像后,它会在 container
上的 /usr/local
中可用吗?
2) 当我使用 docker build
命令构建映像时,构建映像是否默认推送到 docker 存储库中心。
由于 WAR 文件包含凭据,我不想将图像推送到 Docker Hub,但我们想使用 [= 推送到本地 Docker 注册表36=] 分发和推送 docker push
。
请说明。
回答您的问题:
Docker 建议使用
COPY
指令将单个文件添加到图像中。它将在/usr/local/myapp/myapp-0.0.1-jar
的容器内可用
当您构建映像时,它将在您的本地 docker-host 上可用。它不会离开服务器,除非你明确告诉它。
我想给你的另一个提示是推荐的 docker 图片命名约定,即 [Repository/Author]/[Imagename]:[Version]
.
因此对于您的图像,它可能被称为 zama/mytestapp:1.0
如果您想将其推送到您的本地注册表中,您必须按照语法 [LocalRegistry:Port]/[Repository/Author]/[Imagename]:[Version]
.
因此您的图片现在可能被称为 registry.example.com:5000/zama/mystestapp:1.0
如果您的注册表上有身份验证,您需要先 docker login
然后简单地使用 docker push registry.example.com:5000/zama/mystestapp:1.0
推送图像。