Dockerfile 构建镜像
约 357 字大约 1 分钟
2024-11-27
定制一个 nginx 镜像
FROM nginx
RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
dockerfile命令
- FROM 指定基础镜像
FROM scratch
- COPY 复制命令
COPY 源路径 目标路径
- RUN 执行命令 (在 docker build 阶段运行)
RUN <命令>
RUN ["可执行文件", "参数1", "参数2"]
- ENTRYPOINT 设置容器创建时的主要命令。(不可被覆盖)
ENTRYPOINT ["<executeable>","<param1>","<param2>",...]
- CMD 指定容器创建时的默认命令。(可以被覆盖)
CMD <shell 命令>
CMD ["<可执行文件或命令>","<param1>","<param2>",...]
CMD ["<param1>","<param2>",...] # 该写法是为 ENTRYPOINT 指令指定的程序提供默认参数
- ENV 环境变量 (可以通过 -e 覆盖)
ENV <key> <value>
ENV <key1>=<value1> <key2>=<value2>...
- ARG 定义在构建过程中传递给构建器的变量,可使用 "docker build –build-arg name=value " 命令设置
ARG <参数名>[=<默认值>]
- WORKDIR 指定工作目录
WORKDIR /app
使用 Dockerfile 创建镜像
docker build [OPTIONS] PATH | URL | -
$ sudo docker build -f Dockerfile -t myserver:v1 .
$ sudo docker build -f build/Dockerfile -t 10.0.0.100:30002/dev_test/myserver:v1 .
OPTIONS 说明:
- -f: 指定要使用的 Dockerfile 路径
- –build-arg=[]: 设置镜像创建时的变量
- –tag, -t: 镜像的名字及标签,通常 name:tag
docker 登录
$ sudo docker login http://10.0.0.100:30002 -uadmin -pHarbor12345
上传镜像
$ sudo docker push 10.0.0.100:30002/dev_test/myserver:v1
配置http docker私仓
sudo vim /etc/docker/daemon.json
{
"insecure-registry": [
"10.0.0.100:30002"
]
}
sudo systemctl daemon-reload
sudo systemctl restart docker