镜像的获取
- pull from registry (online) 从registry拉取
- public(公有)
- private(私有)
- build from Dockerfile (online) 从Dockerfile构建
- load from file (offline) 文件导入 (离线)
镜像的基本操作
docker image
查看docker image command
docker pull nginx
镜像的拉取 默认最新
docker pull nginx:1.20.0
指定版本拉取
docker pull quay.io/bitnami/nginx
从Quay上拉取镜像
docker image ls
镜像的查看
docker image rm 0922eabe1625
镜像的删除(如果镜像有container 需要先删除cintainer再删除否则不成功 停止也不行)
镜像的导出和导入 (offline)
导出:docker image save nginx:latest -o nginx.image
导入:docker image load -i ./nginx.image
Dockerfile 介绍
执行python等同于下面的dockerfile
print("hello docker")
apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y python3.9 python3-pip python3.9-dev
$ python3 hello.py
hello docker
DockerFile
FROM ubuntu:20.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"]
镜像的构建和分享
构建:docker image build -t [名字]:[版本] [dockerfile位置]
根据已存在的image创建一个新image:docker image tag [旧名字] [新名字]
分享(push到dockerhub)
- docker login --登录
- docker image push [名字]
通过commit 构建镜像
- 启动一个容器:
docker container run -d -p 8080:80 nginx
- 根据id进入容器文件位置:
docker exec -it 7c /bin/bash
- 更改、更新容器:
echo "<h1>Hello Docker</h1>" > index.html
- ctrl+c 退出容器
- 根据id停止当前容器:
docker container stop 7c
- 打包当前容器为image:
docker container commit 7c1 samsun1997
- success