この記事にはプロモーションが含まれていることがあります

Ubuntu上にDocker環境を構築する

IT

ちょいちょいDocker使うことがあるんですが、Linuxの方はいつも忘れてしまうのでメモしときます。

この記事を読むとできること
  • Ubuntu上にDocker環境が構築できる(Docker CE)
  • Docker上でいろいろなコンテナが実行できるようになる
使うもの
  • ubuntu-ja-18.04.2 (インターネット利用可能状態)
  • curlコマンド
スポンサーリンク

UbuntuにDockerをインストール

Dockerのセットアップ準備

aptのパッケージリストを最新化する

$ sudo apt update

aptとは、Advanced Packaging Toolの略で、Ubuntuを含むDebian系のパッケージ管理システムです。

リポジトリを使えるようにセットアップ

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

GPGキーの追加

次のコマンドを実行して、「OK」が表示されることを確認します。

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

GPGキーの確認

$ 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]

リポジトリの登録

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Dockerのインストール

$ sudo apt install -y docker-ce

これでDockerのインストールは完了です。後は、動作確認をしておきましょう。

スポンサーリンク

Dockerの動作確認

Dockerのバージョン確認

$ docker version

こんな感じで表示されると思います。

Client: Docker Engine - Community
 Version:           19.03.5
 API version:       1.40
 Go version:        go1.12.12
 Git commit:        633a0ea838
 Built:             Wed Nov 13 07:29:52 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.5
(以下省略)

一般ユーザで実行している場合は、最後に次のようなメッセージが表示されます。dockerの操作を一般ユーザには使わせない場合は、このままでOKです。

Got permission denied while trying to connect to the Docker daemon socket
at unix:///var/run/docker.sock: 
Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/images/json: 
dial unix /var/run/docker.sock: connect: permission denied
rootユーザ以外でもdockerを動かしたい

デフォルトだとdockerはrootユーザしか実行できません。一般ユーザでも実行したい場合は、dockerグループに所属する必要があります。
dockerを動かしたいユーザでログインして次のコマンドを実行します。
※実行後は一度ログインし直してください。

$ sudo usermod -aG docker `whoami`

Docker上のShellで”Hello World”を表示してみる

さて、定番のHello Worldしてみましょうか。
これはdocker上でubuntuの最新版のコンテナを起動し、echo Hello Worldして、というコマンドです。

$ docker run ubuntu:latest /bin/echo 'Hello world'

指定したコンテナが無い場合は、自動でDockerリポジトリからダウンロードしてきて実行してくれます。コンソールを確認するとpullしてますね。

ちなみにコンテナはローカルにキャッシュされますので、同じコマンドを実行すると次はキャッシュされたコンテナ上でecho Hello Worldが実行されるだけです。

Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
7ddbc47eeb70: Pull complete
c1bbdc448b72: Pull complete
8c3b70e39044: Pull complete
45d437916d57: Pull complete
Digest: sha256:6e9f67fa63b0323e9a1e587fd71c561ba48a034504fb804fd26fd8800039835d
Status: Downloaded newer image for ubuntu:latest
Hello world

キャッシュされたコンテナを確認する

docker関係を操作するには、dockerコマンドを使います。今回はdockerのイメージを表示します。

$ docker image ls

ubuntuの最新版(latest)が表示されましたね。これでUbuntu上のDockerのubuntuが乗っかった感じです。こんな感じでいろんなものをコンテナのように搭載できるのがdockerです。まさにロゴの通りですね。Dockerの解説は詳しいサイトがゴロゴロしているので割愛します。

REPOSITORY  TAG    IMAGE ID      CREATED      SIZE
ubuntu      latest 775349758637  6 weeks ago  64.2MB

ホストの環境を汚さずにいろんなソフトウェアを導入できるDockerのある生活が始まりますね~ わくわくしません!?

キャッシュされたイメージを削除する

$ docker image rm -f ubuntu
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:bec5a2727be7fff3d308193cfde3491f8fba1a2ba392b7546b43a051853a341d
Deleted: sha256:4e5021d210f65ebe915670c7089120120bc0a303b90208592851708c1b8c04bd
おすすめ書籍の紹介コーナー

Dockerとはなんぞや? という方にオススメの一冊です。

Webエンジニアだけど自分の作ったアプリを自分の手元のコンテナで動かしてみたい、テスト用のアプリ環境を複数作りたい、などなどDockerを使うとインフラエンジニアにお願いしていたことが自分でもできるようになります。そんなあなたにオススメな一冊がこちらです。

最後にインフラエンジニアやっててDockerを極めたい、という方はオライリー本でとことん深くまで突き進んでください。

コメント

タイトルとURLをコピーしました