在Ubuntu上安装Docker

我想在今天先前在Prallels Desktop上创建的Ubuntu Desktop上安装Docker,并构建容器化的虚拟环境。有关环境的相关信息,请参考以下帖子。

スクリーンショット1.png
余談だが、Ubuntu等のDebian系Linuxディストリビューションでは、パッケージの追加・更新・削除といった管理はAPT(Advanced Package Tool)で行う。aptで始まるコマンド群がそれに該当する。

インストール手順

必要となるパッケージのインストール

Dockerをインストールするのに先立って必要となるパッケージがいくつかあるので、それを先にインストールする。

$ sudo apt update
$ sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
apt updateコマンドはパッケージ情報を更新するコマンド。パッケージをインストールしたり更新する際は必ずこれを先に行い、インストール対象のパッケージ情報を最新化する事。

ここでインストールするパッケージの用途は下記の通り。

パッケージ名用途apt-transport-httpsAPTに登録済みのリポジトリに対してHTTPS通信するca-certificates通信相手に対して身元証明するcurlHTTP経由でファイルをダウンロードするgnupg-agent暗号化されたパッケージを復号化するsoftware-properties-commonAPTにリポジトリを追加する

添加GPG密钥

GPGキーをダウンロードし、APTにキー登録する。DockerパッケージはGPG(GNU Privacy Guard)というツールで暗号化されており、GPGキーはDockerパッケージを復号化する為に必要となる。

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
在curl命令的fsSL选项中,不会显示命令的进度,只会显示错误信息,并且会自动重定向到访问页面是否已经移动。
apt-keyのaddサブコマンドの引数ハイフン(-)は、パイプ(|)で繋いだ前半部分のコマンド結果を標準入力として受け取っている。つまり、ここではGPGキーを指定している。

フィンガープリントの確認

GPGキーがAPTに正しく登録されたかを確認。下記のように表示されればOK。

$ sudo apt-key fingerprint 0EBFCD88
pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [  不明  ] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

向APT中添加存储库。

在APT中添加Docker官方网站的存储库。

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
在`add-apt-repository`命令中,所指定的参数字符串是用来指定要添加到APT存储库文件(/etc/apt/sources.list)的字符串。

执行完上述命令后,尝试查看APT存储库文件的内容。

$ cat /ect/apt/sources.list
:
(中略)
:
deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable
# deb-src [arch=amd64] https://download.docker.com/linux/ubuntu focal stable
:
(中略)
:
以下是「sources.list」注册内容的大致含义:
发布形式是二进制(deb)文件,CPU指令集架构为64位版本([arch=amd64]),URL为https://download.docker.com/linux/ubuntu,适用于Ubuntu的编码名称是focal(即20.04),仓库类别为稳定版(stable)。

因为添加了新的APT存储库,所以请更新存储库信息。

$ sudo apt update

Dockerのインストール

下準備が完了したので、いよいよDocker本体をインストールする。

$ sudo apt install docker-ce

确认是否成功安装。

$ sudo docker version
Client: Docker Engine - Community
 Version:           20.10.11
 API version:       1.41
 Go version:        go1.16.9
 Git commit:        dea9396
 Built:             Thu Nov 18 00:37:06 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.11
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.9
  Git commit:       847da18
  Built:            Thu Nov 18 00:35:15 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.12
  GitCommit:        7b11cfaabd73bb80907dd23182b9347b4245eb5d
 runc:
  Version:          1.0.2
  GitCommit:        v1.0.2-0-g52b36a2
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

一切顺利地安装完成了。

最后,为了让普通用户在日常使用中无需sudo即可使用docker命令,我们将其添加至docker用户组。这样一来,在运行docker命令时不再需要每次都加上sudo。

$ sudo usermod -aG docker $USER
本設定はOS再起動後に有効となる。

我想试试创建一个Ubuntu容器。

折角、Docker環境が構築できたので、試しにUbuntuコンテナを作成してみる。

Ubuntuイメージのダウンロード

Docker Hubより、Ubuntu公式のUbuntuイメージをダウンロードする。

$ docker image pull ubuntu

イメージがダウンロードできたか確認。

$ docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
ubuntu       latest    ba6acccedd29   8 weeks ago   72.8MB

Ubuntuコンテナの作成

ダウンロードしたUbuntuイメージを使って、Ubuntuコンテナを作成する。
コンテナ名は任意の名前を付ける。今回、私はubuntu000とした。

$ docker container create --name ubuntu000 -it ubuntu

コンテナが作成できたか確認。

$ docker container ls -a
CONTAINER ID   IMAGE     COMMAND   CREATED          STATUS    PORTS     NAMES
5b29c88acf7e   ubuntu    "bash"    20 seconds ago   Created             ubuntu000

启动Ubuntu容器

启动已创建的Ubuntu容器。

$ docker container start ubuntu000

确认容器是否已启动。

$ docker container ls
CONTAINER ID   IMAGE     COMMAND   CREATED          STATUS          PORTS     NAMES
5b29c88acf7e   ubuntu    "bash"    10 minutes ago   Up 59 seconds             ubuntu000

顺利启动了。进入Ubuntu容器中尝试一下。

$ docker container exec -it ubuntu000 /bin/bash
root@5b29c88acf7e:/# 

已经完成了将Ubuntu容器创建好了。

无需担心,Ubuntu容器已经成功创建。

Docker Composeのインストール

顺便决定安装Docker Compose。

Docker Composeのバージョン確認

在GitHub的Docker Compose官方存储库中确认版本。在我确认的时候,最新版本是v2.2.2。从v2开始,安装方法似乎有所改变,请参考Docker官方文档中的这个页面进行安装。

Docker Compose的安装

在主目录中创建用于存储Docker Compose CLI插件的目录,如下所示。

$ mkdir -p ~/.docker/cli-plugins/

然后,下载Docker Compose的二进制文件并授予执行权限。

$ curl -SL https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-`uname -s`-`uname -m` -o ~/.docker/cli-plugins/docker-compose
$ chmod +x ~/.docker/cli-plugins/docker-compose

确认是否成功安装。

$ docker compose version
Docker Compose version v2.2.2

顺利完成了安装。
命令从docker-compose变成了docker compose。

辛苦了!

广告
将在 10 秒后关闭
bannerAds