0910_docker学习(6)

108 阅读1分钟

Docker是如何进行分发软件呢?又是如何对软件进行标识呢?

image.png

通俗点来说,Docker 通过 Image (镜像)来分发软件,通过 镜像名 + 标签,来当作唯一标识。最后,当镜像进行实例化之后,就是特定的、可运行的软件。

Docker image的三种获取方式:

  • Docker 仓库, 比如 Docker Hub
  • 提前保存的 image 文件
  • 通过 Dockerfiles 文件生成的 image

当我们去创建镜像实例,如果镜像不存在,那么默认情况下,docker 会从 docker hub 去查找对应的镜像,并拉取到本地。如果需要从别的地方拉取,可以使用 docker pull [REGISTRYHOST:PORT/][USERNAME/]NAME[:TAG] 命令。

# 默认会向 docker hub 去拉取
docker pull busybox:latest


# 可以从第三方的 仓库拉取,
docker pull quay.io/bitnami/nginx

我们可以使用 docker save 命令来保存一个镜像文件,然后通过 docker load 命令来加载这个镜像文件。


// 保存
docker save -o nginx-docker.tar busybox:latest


// 加载
docker load -i nginx-docker.tar

如果源代码里面有 Dockerfile 文件,那么可以通过该文件,来生成镜像 。

# 镜像名 标签 以及源代码文件夹路径

docker build -t repositoryname:tag sourcepath

删除镜像可以使用 docker image prune 或者 docker image rm 命令


# 删除所有未被使用过的镜像
docker image prune

# 删除选定的镜像。
docker image rm [repository:tag or  image id]

删除镜像实例(即 container),可以使用 docker container prune docker container rm 命令

# 删除所有停止运行的容器


# 删除指定的容器,可通过 -f 参数强制删除正在运行的容器
docker container rm -f [names or container id]

# 或者先停止容器,再进行删除
docker container stop [names or container id]
docker container rm  [names or container id]