Docker入门

小剧场

🤔: 你在看什么呀?
😎:我在看docker!
🤨:码头装卸工人吗?

Get Docker | Docker Documentation

命令记录

Docker: 容器与管理程序虚拟化

Docker 是一个应用打包、分发、部署的工具
你也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要,
而普通虚拟机则是一个完整而庞大的系统,包含各种不管你要不要的软件。

1
2
3
4
5
6
7
8
9
10
11
12
docker version # 显示 Docker 客户端和服务器端的版本信息。
docker build # 根据 Dockerfile 构建镜像。
docker images # 列出本地所有的镜像。
docker run # 创建并启动一个容器。
docker ps # 列出运行中的容器。
docker stop # 停止一个或多个运行中的容器。
docker kill # 强制停止一个或多个容器(发送 SIGKILL 信号)。
docker start # 启动一个或多个已停止的容器。
docker restart # 重启一个或多个容器。
docker rm # 删除一个或多个容器。
docker rmi # 删除一个或多个镜像。
docker tag # 为镜像打标签(创建镜像的别名)。

Docker 使用经历

Docker — 从入门到实践

Docker 包括三个基本概念

  • 镜像Image

    • Docker 镜像 是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像 不包含 任何动态数据,其内容在构建之后也不会被改变。
  • 容器Container

    • 镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库Repository

    • 镜像构建完成后,可以很容易的在当前宿主机上运行,但是,如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry 就是这样的服务。

    • 一个 Docker Registry 中可以包含多个 仓库Repository);每个仓库可以包含多个 标签Tag);每个标签对应一个镜像。

    • 最常使用的 Registry 公开服务是官方的 Docker Hub,这也是默认的 Registry,并拥有大量的高质量的 官方镜像。除此以外,还有 Red Hat 的 Quay.io;Google 的 Google Container RegistryKubernetes 的镜像使用的就是这个服务;代码托管平台 GitHub 推出的 ghcr.io

      由于某些原因,在国内访问这些服务可能会比较慢。国内的一些云服务商提供了针对 Docker Hub 的镜像服务(Registry Mirror),这些镜像服务被称为 加速器。常见的有 阿里云加速器DaoCloud 加速器 等。使用加速器会直接从国内的地址下载 Docker Hub 的镜像,比直接从 Docker Hub 下载速度会提高很多。在 安装 Docker 一节中有详细的配置方法。

      国内也有一些云服务商提供类似于 Docker Hub 的公开服务。比如 网易云镜像服务DaoCloud 镜像市场阿里云镜像库 等。

image

1
2
3
4
5
6
7
8
9
10
11
# 获取镜像
docker pull

# 列出镜像
docker image ls

# 删除本地镜像
docker image rm

# 命令进行镜像构建
docker build
  • 使用 Dockerfile 定制镜像

Dockerfile 是一个文本文件,其内包含了一条条的 **指令(Instruction)**,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。

container

启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(exited)的容器重新启动。

1
2
3
4
5
6
7
8
9
10
11
# 新建并启动
docker run

# 启动已终止容器.以利用 docker container start 命令,直接将一个已经终止(exited)的容器启动运行。
docker container start

# 守护态运行
docker run -d

# 终止.可以使用 docker container stop 来终止一个运行中的容器。
docker container stop
1
2
3
# 某些时候需要进入容器进行操作,包括使用 docker attach 命令或 docker exec 命令,推荐大家使用 docker exec 命令
docker attach
docker exec
1
2
3
4
5
6
7
8
9
10
11
12
# 导出容器
docker export

# 导入容器快照. 可以使用 docker import 从容器快照文件中再导入为镜像
docker import

# 删除。可以使用 docker container rm 来删除一个处于终止状态的容器。
docker container rm

# 清理所有处于终止状态的容器
docker container ls -a # 查看所有已经创建的包括终止状态的容器
docker container prune # 清理掉所有处于终止状态的容器。

repository

1
2
3
4
5
docker login
docker logout
docker search
docker pull
docker push

Docker入门
https://blog.cosmicdusty.cc/post/Knowledge/DockerBeginner/
作者
Murphy
发布于
2023年5月6日
许可协议