Docker 学习笔记

本篇为 《深入浅出Docker》该书学习笔记

0. 为什么学习 Docker

容器化应用已是目前的事实,至少需要学会使用该工具。

1. 容器概览

很好的一个例子是: 在某地从零开始搭建一座房子, 结果需要搬家,只好在另处又从零开始。
容器的出现,让这一切变得“可复用”,一次搭好,随处可用,并且可靠。

虚拟机的不足

VMware的虚拟机是在硬件层面上构建虚拟构建应用, 不足在于VMware本身需要依赖专用操作系统,且VMware 本身占用资源。
因此,容器化技术便是为了解决虚拟机的不足而出现。容器的运行不会独占操作系统,还具有启动快和便于迁移等优势。

2. Docker 介绍

3. Docker 安装

3.1 Ubuntu 上使用 Docker 仓库安装 ce 版本

Ubuntu 官方的版本库中并不一定是 Docker 最新的安装包,为了保证是最新版,我们从 Docker 官方库来安装。
首先,更新现有的软件包列表:

$ sudo apt update

注意:如果无法更新,可能是你的软件源指向是国外的服务器,很可能已经被墙。所有首次更新请打开 VPN。

接下来,安装一些必备软件包,让 apt 通过 HTTPS 使用软件包。

sudo apt install apt-transport-https ca-certificates curl software-properties-common

然后将官方 Docker 版本库的 GPG 密钥添加到系统中:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

执行后显示

OK
将 Docker 版本库添加到APT源:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

执行后显示:

Get:1 https://download.docker.com/linux/ubuntu focal InRelease [36.2 kB]                                
Hit:2 http://cn.archive.ubuntu.com/ubuntu focal InRelease                                               
Get:3 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages [3056 B]
Hit:4 http://cn.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:5 http://cn.archive.ubuntu.com/ubuntu focal-backports InRelease
Hit:6 http://cn.archive.ubuntu.com/ubuntu focal-security InRelease
Fetched 39.2 kB in 2s (16.1 kB/s)
Reading package lists... Done

接下来,我们用新添加的 Docker 软件包来进行升级更新。

sudo apt update

确保要从 Docker 版本库,而不是默认的 Ubuntu 版本库进行安装:

apt-cache policy docker-ce

执行后会看到这样的结果( Docker 的版本号可能略有不同)

docker-ce:
  Installed: (none)
  Candidate: 5:20.10.13~3-0~ubuntu-focal
  Version table:
     5:20.10.13~3-0~ubuntu-focal 500
        500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
     5:20.10.12~3-0~ubuntu-focal 500
        500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
     5:20.10.11~3-0~ubuntu-focal 500
        500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
     5:20.10.10~3-0~ubuntu-focal 500
        500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages

请注意,到目前这一步docker-ce还未安装,但根据上一步中的列表,可以看到 docker-ce 来自 Docker 官方版本库。

最后,安装 Docker :

sudo apt install docker-ce

现在 Docker 已经安装完毕。
查看 docker 安装版本信息:

$docker --version

我们启动守护程序。检查 Docker 是否正在运行:

sudo systemctl status docker

执行结果类似以下内容,说明该服务处于活动状态并且正在运行:

● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-07-08 02:55:20 UTC; 5min ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 4287 (dockerd)
      Tasks: 8
     Memory: 36.4M
     CGroup: /system.slice/docker.service
             └─4287 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

如果要使用 Docker 作为非 root 用户,则应考虑使用类似以下方式将用户添加到 docker 组:

$ sudo usermod -aG docker your-user
$ cat /etc/group | grep docker
docker:x:999:your-user

如果当前登录用户就是要添加到Docker组中的用户的话,则需要重新登录,组权限设置才会生效。

https://kalacloud.com/blog/how-to-install-and-use-docker-on-ubuntu/

3.2 卸载 docker

删除安装包:

sudo apt-get remove docker docker-engine docker-ce docker.io -y

删除镜像、容器、配置文件等内容:

sudo rm -rf /var/lib/docker

3.3 Docker 升级

(1)停止Docker守护程序。(2)移除旧版本Docker。(3)安装新版本Docker。(4)配置新版本的Docker为开机自启动。(5)确保容器重启成功。

3.4 Docker 存储驱动的选择

每个Docker容器都有一个本地存储空间,用于保存层叠的镜像(Image Layer)以及挂载的容器文件系统,默认情况下,容器的所有读写操作都发生在镜像层上或挂载的文件系统中
本地存储是通过存储驱动(Storage Driver)进行管理,也被称为Graph Driver

在Linux上,Docker可选择的一些存储驱动包括AUFS(最原始也是最老的)、Overlay2(可能是未来的最佳选择)、Device Mapper、Btrfs和ZFS。
在Linux上,读者可以通过修改/etc/docker/daemon.json文件来修改存储引擎配置,修改完成之后需要重启Docker才能够生效

4. 纵观 Docker

4.1 运维视角

镜像:

# 查看镜像
$ docker image ls

# 拉取镜像
$ docker image pull ubuntu:latest

容器

4.2 开发视角

会分析一份应用代码中的Dockerfile并将其容器化,最终以容器的方式运行

posted on 2022-04-13 23:31  jfunny  阅读(60)  评论(0编辑  收藏  举报

导航