docker build
docker build
命令用于从Dockerfile创建一个镜像。它的基本格式如下:
bash
docker build [OPTIONS] PATH | URL | -
这里的PATH
是Dockerfile所在的路径,URL
是一个Git仓库地址,-
表示从标准输入读取Dockerfile。
docker build
命令的一些常用选项包括:
-t, --tag
: 为新创建的镜像指定一个名称和标签,格式为name:tag
。如果不指定标签,那么默认标签为latest
。--file, -f
: 指定要使用的Dockerfile路径。如果不在当前目录下,需要指定相对路径或绝对路径。--no-cache
: 创建镜像时,不使用缓存。如果你更改了Dockerfile,那么建议使用这个选项,以确保所有步骤都是最新的。--rm
: 构建成功后删除中间容器。这是默认行为,如果你想保留中间容器,可以使用--rm=false
。
例如,如果你有一个Dockerfile在当前目录下,你可以使用以下命令来创建一个名为myapp
的镜像:
bash
docker build -t myapp .
这里的.
表示当前目录,Docker会在这个目录下寻找Dockerfile。
docker save
Docker提供了两个命令来导出镜像:docker save
和docker export
。这两个命令的功能类似,但是有一些重要的区别。
docker save
: 这个命令用于将一个或多个镜像保存为一个tar归档文件。这个命令保存的是完整的镜像,包括所有的层、标签和版本信息。你可以使用docker load
命令来加载这个tar归档文件,恢复镜像。docker save
的基本格式如下:
bash
docker save [OPTIONS] IMAGE [IMAGE...]
例如,你可以使用以下命令来保存一个名为myapp
的镜像:
bash
docker save -o myapp.tar myapp
这个命令会创建一个名为myapp.tar
的文件,包含myapp
镜像的所有信息。
docker export
: 这个命令用于将一个容器的文件系统导出为一个tar归档文件。这个命令保存的只是容器的当前状态,不包括历史和元数据。你可以使用docker import
命令来从这个tar归档文件创建一个新的镜像。docker export
的基本格式如下:
bash
docker export [OPTIONS] CONTAINER
例如,你可以使用以下命令来导出一个名为mycontainer
的容器:
bash
docker export -o mycontainer.tar mycontainer
这个命令会创建一个名为mycontainer.tar
的文件,包含mycontainer
容器的当前文件系统。
总的来说,如果你想保存完整的镜像信息,应该使用docker save
。如果你只关心容器的当前状态,可以使用docker export
。
创建自己的镜像推送,拉取
创建和推送自己的Docker镜像需要以下步骤:
- 创建Dockerfile:Dockerfile是一个文本文件,其中包含了一系列命令,这些命令用于创建一个新的Docker镜像。例如,一个简单的Dockerfile可能如下:
Dockerfile
# 使用官方的Python运行时作为父镜像
FROM python:3.7-slim
# 设置工作目录
WORKDIR /app
# 将当前目录的内容复制到容器的/app目录中
ADD . /app
# 安装需要的包
RUN pip install --no-cache-dir -r requirements.txt
# 设置环境变量
ENV NAME World
# 运行app.py当容器启动时
CMD ["python", "app.py"]
- 构建镜像 :使用
docker build
命令来根据Dockerfile创建一个新的镜像。例如:
bash
docker build -t myapp:1.0 .
这个命令会在当前目录下查找Dockerfile,并创建一个名为myapp
,标签为1.0
的镜像。
- 推送镜像 :首先,你需要在Docker Hub或其他Docker镜像仓库注册一个账号。然后,使用
docker login
命令来登录你的账号。例如:
bash
docker login
然后,你需要将你的镜像标记为仓库的一部分。例如,如果你的Docker Hub用户名是myusername
,你可以使用以下命令来标记你的镜像:
bash
docker tag myapp:1.0 myusername/myapp:1.0
最后,使用docker push
命令来推送你的镜像到仓库:
bash
docker push myusername/myapp:1.0
拉取镜像的命令是docker pull
,例如:
bash
docker pull myusername/myapp:1.0
这个命令会从仓库中拉取你的镜像。
分享一个有趣的 学习链接:https://xxetb.xet.tech/s/HY8za