jk's notes
  • 第一部分 快速开始并运行你的 Docker

第一部分 快速开始并运行你的 Docker

该部分介绍如何安装, 配置, 并在本地使用简单的 Docker 容器.该部分包括:

  • 第一章, Docker 简介
  • 第二章, 构建 Docker 镜像
  • 第三章, 存储与发布镜像
  • 第四章, 管理容器
  • 第五章, 使用 Docker Compose 运行多镜像
  • 第六章, 使用 Docker Machine, Vagrant, 以及 Multipass

第一章 Docker 简介

无论你是否在使用 Docker, 还是要了解一下基础, 对你理解后续的内容, 或提升学习效率有一定好处.

学完本书, 你将成为 Docker 专家.

本章我们会介绍

  • 理解 Docker
  • 专用主机, 虚拟机, 以及 Docker 之前的区别
  • Docker 命令
  • Docker 与容器的生态

1.1 技术要求

要安装 Docker, 请确保下列条件:

  • macOS High Sierra 以上的系统
  • Win10 专业版
  • Ubuntu 18.04 以上的系统
  • 可以看视频: https://bit.ly/35fytE3

1.2 理解 Docker

在安装之前, 看看 Docker 解决了什么问题.

1.2.1 开发者

开发环境与部署环境不同. 开发时好好的, 运维就出问题等.

开发环境与生产环境是不一样的

可由 Dickerfile 来生成镜像, 或使用 Docker Compose 来处理镜像.

1.2.2 运维人员

一次性部署多台服务器. 同时要兼容不同运行时环境的应用, 而这些运行时环境可能冲突.

使用不同容器来运行不同运行时的应用. 互相隔离, 且可以协作.

1.2.3 企业

服务器的稳定运行, 新环境的加入, 测试环境的协作等.

1.3 专有主机, 虚拟机, 以及 Docker 的区别

专有主机:

image-20230803101012400

虚拟机:

image-20230803101028113

容器:

image-20230803101045430

1.4 安装 Docker

首先是 OS 的基本要求 (支持)

  • Linux
  • Windows
  • macOS

1.4.1 在 Linux 上安装 Docker

作者与我的习惯类似, 交给脚本去解决

事实上不同 OS 上安装是不完全一样的. 对于 macOS 与 Win 都是使用虚拟化技术来运行了 Linux 子系统, 然后在上面使用 Docker. 因此它们都使用的是 Docker Desktop. 而不同的 Linux 发行版的细节也有所差异. 可以参考官方文档: 安装 Docker

基本步骤

  1. 下载脚本运行
  2. 将当前用户加入 docker 组
  3. 查看版本以确保安装成功

最后补充一下, 配置加速镜像

书中介绍了 docker-compose 的命令与更新办法, 但是命令似乎有改动.

curl -sSL https://get.docker.com/ | sh
sudo systemctl start docker
sudo usermod -aG docker <username>

设置开启启动

sudo systemctl enable docker

可用的加速源:

  • 科大镜像:https://docker.mirrors.ustc.edu.cn/
  • 网易:https://hub-mirror.c.163.com/
  • 阿里云:https://<你的ID>.mirror.aliyuncs.com
  • 七牛云加速器:https://reg-mirror.qiniu.com

配置的代码片段:

"registry-mirrors": [
  "https://iglfr1u0.mirror.aliyuncs.com",
  "https://docker.mirrors.ustc.edu.cn/",
  "https://hub-mirror.c.163.com/",
  "https://reg-mirror.qiniu.com"
]

2024年7月17日 这些现在都用不了了. 现在可以考虑使用 https://docker.rainbond.cc

1.4.2 在 mac 上安装 Docker Desktop (略)

1.4.3 在 Win 上安装 Docker Desktop (略)

1.4.4 较老的 OS 上

推荐使用 VirtualBox 虚拟机.

1.5 使用 Docker 命令

首先介绍一些常用的命令, 然后是镜像的命令, 最后是容器的命令.

首先是最常用的 help 命令, 它列举可用的子命令, 并使用 docker <subcommand> --help 来查看细节.

docker help | more

image-20230803110207201

image-20230803110247625

下一步, 我们简单运行一下 hello-world 容器, 执行下面的命令:

docker container run hello-world

不用在意是什么 OS 环境. 终端运行起来应该如下:

image-20230803110630708

然后我们深入一下, 运行一个 nginx 容器, 它需要两条命令:

docker image pull nginx
docker container run -d --name nginx-test -p 8080:80 nginx

这两条命令, 一个是下载镜像, 一个是运行容器.

然后即可在浏览器中访问 http://localhost:8080.

后三个章节, 我们会讨论 Docker 命令的细节. 下面我们来停止容器, 并删除它.

docker container stop nginx-test
docker container rm nginx-test

这些命令可以在三个平台上分别运行, 会得到相同的效果.

1.6 Docker 与容器的生态

介绍背景与各个软件版本. 略.

问题

扩展阅读

Last Updated:
Contributors: jk