docker 镜像构建方式
2022-03-26 本文已影响0人
程序男保姆
-
pull from registry (online) 从registry拉取
1 public(公有)
2 private(私有) -
build from Dockerfile (online) 从Dockerfile构建
-
load from file (offline) 文件导入 (离线)
(远程仓库至本地)镜像的拉取Pull Image
# 默认从Docker Hub拉取,如果不指定版本,会拉取最新版
docker pull nginx
#指定版本
docker pull nginx:1.20.0
#从Quay上拉取镜像
docker pull quay.io/bitnami/nginx
(导出导出)镜像的导出和导入 (offline)
# 导出 -o 是output
docker image save nginx:1.20.0 -o nginx.image
# 导入 -i 是input
docker image load -i .\nginx.image
(Dockerfile) 构建docker镜像
Dockerfile
FROM ubuntu:21.04
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y python3.9 python3-pip python3.9-dev
ADD hello.py /
CMD ["python3", "/hello.py"]
# -t 镜像的名称 . dockerfile文件地址
docker build -t mynginx:v1 .
(镜像至镜像)
docker tag nginx:15.10 tianzhiyuan/nginx:v3
从(容器)中创建镜像
docker commit :从容器创建一个新的镜像。(暂时不知道用这种方式创建的镜像怎么设置容器启动时的脚本)
# 语法
# docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
# OPTIONS说明:
# -a :提交的镜像作者;
# -c :使用Dockerfile指令来创建镜像;
# -m :提交时的说明文字;
# -p :在commit时,将容器暂停。
docker commit -a "zhiyuan" -m "说明文字" a404c6c174a2 mymysql:v1
push镜像 (tianzhiyuan 分组 )
docker push myapache:v1
docker push tianzhiyuan/docker-repository:tagname