知道网站是wp程序做的如何仿站,建立网站要多少钱一年,有没有专门发布毕业设计代做网站,网站的前端和后端构建、标记和发布镜像
目录
构建镜像标记镜像发布镜像实践 设置构建镜像推送镜像 在本指南中#xff0c;您将学习以下内容#xff1a; 构建镜像#xff1a;基于Dockerfile构建镜像的过程。标记镜像#xff1a;为镜像命名的过程#xff0c;这也决定了镜像的分发位置。发…构建、标记和发布镜像
目录
构建镜像标记镜像发布镜像实践 设置构建镜像推送镜像 在本指南中您将学习以下内容 构建镜像基于Dockerfile构建镜像的过程。标记镜像为镜像命名的过程这也决定了镜像的分发位置。发布镜像使用容器注册表分发或共享新创建的镜像的过程。 构建镜像
通常情况下镜像是使用Dockerfile构建的。最基本的构建命令如下
docker build .命令中的.提供了构建上下文的路径或URL。在这个位置构建器会找到Dockerfile和其他引用的文件。
当您运行构建时构建器会拉取基础镜像如果需要然后运行Dockerfile中指定的指令。
使用上述命令镜像将没有名称但输出会提供镜像的ID。例如前面的命令可能产生如下输出
docker build .
[] Building 3.5s (11/11) FINISHED [internal] load build definition from Dockerfile 0.0s transferring dockerfile: 308B 0.0s [internal] load metadata for docker.io/library/python:3.12 0.0s [internal] load .dockerignore 0.0s transferring context: 2B 0.0s [1/6] FROM docker.io/library/python:3.12 0.0s [internal] load build context 0.0s transferring context: 123B 0.0s [2/6] WORKDIR /usr/local/app 0.0s [3/6] RUN useradd app 0.1s [4/6] COPY ./requirements.txt ./requirements.txt 0.0s [5/6] RUN pip install --no-cache-dir --upgrade -r requirements.txt 3.2s [6/6] COPY ./app ./app 0.0s exporting to image 0.1s exporting layers 0.1s writing image sha256:9924dfd9350407b3df01d1a0e1033b1e543523ce7d5d5e2c83a724480ebe8f00 0.0s根据上述输出您可以使用引用的镜像启动一个容器
docker run sha256:9924dfd9350407b3df01d1a0e1033b1e543523ce7d5d5e2c83a724480ebe8f00这种名称肯定不好记这时候标记镜像就变得很有用。
标记镜像
标记镜像是给镜像一个易记名称的方法。不过镜像的名称有一定的结构。一个完整的镜像名称有以下结构
[HOST[:PORT_NUMBER]/]PATH[:TAG]HOST镜像所在的可选注册表主机名。如果没有指定主机名默认为Docker的公共注册表docker.io。PORT_NUMBER如果提供了主机名则为注册表端口号。PATH镜像的路径由斜杠分隔的组件组成。对于Docker Hub格式为[NAMESPACE/]REPOSITORY其中namespace是用户或组织的名称。如果未指定namespace则使用library这是Docker官方镜像的命名空间。TAG自定义的、易于阅读的标识符通常用于标识镜像的不同版本或变体。如果未指定标签默认使用latest。
一些镜像名称的例子包括
nginx相当于docker.io/library/nginx:latest从docker.io注册表、library命名空间、nginx镜像仓库中拉取latest标签的镜像。docker/welcome-to-docker相当于docker.io/docker/welcome-to-docker:latest从docker.io注册表、docker命名空间、welcome-to-docker镜像仓库中拉取latest标签的镜像。ghcr.io/dockersamples/example-voting-app-vote:pr-311从GitHub Container Registry、dockersamples命名空间、example-voting-app-vote镜像仓库中拉取pr-311标签的镜像。
在构建期间标记镜像可以添加-t或--tag标志
docker build -t my-username/my-image .如果您已经构建了镜像可以使用docker image tag命令添加另一个标签
docker image tag my-username/my-image another-username/another-image:v1发布镜像
构建并标记好镜像后您就可以将其推送到注册表。使用docker push命令
docker push my-username/my-image在几秒钟内镜像的所有层都将被推送到注册表。
需要认证
在推送镜像到仓库之前您需要进行认证。只需使用docker login命令即可。
实践
在本指南中您将使用提供的Dockerfile构建一个简单的镜像并将其推送到Docker Hub。
设置
获取示例应用程序。
如果您有Git可以克隆示例应用程序的仓库。否则您可以下载示例应用程序。选择以下选项之一
使用Git克隆
在终端中使用以下命令克隆示例应用程序仓库
git clone https://github.com/docker/getting-started-todo-app下载并安装Docker Desktop。
如果您还没有Docker账户请现在创建一个。完成后使用该账户登录Docker Desktop。
构建镜像
现在您已经在Docker Hub上有了一个仓库是时候构建一个镜像并将其推送到仓库了。
在示例应用程序仓库的根目录中使用终端运行以下命令。将YOUR_DOCKER_USERNAME替换为您的Docker Hub用户名
docker build -t YOUR_DOCKER_USERNAME/concepts-build-image-demo .例如如果您的用户名是mobywhale则运行以下命令
docker build -t mobywhale/concepts-build-image-demo .构建完成后您可以使用以下命令查看镜像
docker image ls该命令将产生类似以下的输出
REPOSITORY TAG IMAGE ID CREATED SIZE
mobywhale/concepts-build-image-demo latest 746c7e06537f 24 seconds ago 354MB您实际上可以使用docker image history命令查看镜像的历史记录或如何创建镜像
docker image history mobywhale/concepts-build-image-demo您将看到类似以下的输出
IMAGE CREATED CREATED BY SIZE COMMENT
f279389d5f01 8 seconds ago CMD [node ./src/index.js] 0B buildkit.dockerfile.v0
missing 8 seconds ago EXPOSE map[3000/tcp:{}] 0B buildkit.dockerfile.v0
missing 8 seconds ago WORKDIR /app 8.19kB buildkit.dockerfile.v0
missing 4 days ago /bin/sh -c #(nop) CMD [node] 0B
missing 4 days ago /bin/sh -c #(nop) ENTRYPOINT [docker-entry… 0B
missing 4 days ago /bin/sh -c #(nop) COPY file:4d192565a7220e13… 20.5kB
missing 4 days ago /bin/sh -c apk add --no-cache --virtual .bui… 7.92MB
missing 4 days ago /bin/sh -c #(nop) ENV YARN_VERSION1.22.19 0B
missing 4 days ago /bin/sh -c addgroup -g 1000 node addu… 126MB
missing 4 days ago /bin/sh -c #(nop) ENV NODE_VERSION20.12.0 0B
missing 2 months ago /bin/sh -c #(nop) CMD [/bin/sh] 0B
missing 2 months ago /bin/sh -c #(nop) ADD file:d0764a717d1e9d0af… 8.42MB此输出显示了镜像的各层突出了您添加的层以及从基础镜像继承的层。
推送镜像
现在您已经构建了镜像是时候将镜像推送到注册表了。
使用docker push命令推送镜像
docker push YOUR_DOCKER_USERNAME/concepts-build-image-demo如果收到requested access to the resource is denied的错误请确保您已经登录并且您的Docker用户名在镜像标签中是正确的。
稍等片刻您的镜像应当被推送到Docker Hub。