前置き
- Dockerを使いこなしている人はUbuntuに再インストールするときの忘備録としてお役立てください
- Dockerの公式ドキュメントに解説をところどころ加えた記事です
インストール環境
私のインストールするUbuntuの環境です。
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic
dockerのインストールと起動
docker
コマンドが使えるようにしていきましょう。
インストール
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# :OUTPUT:
# OK
sudo apt-key fingerprint 0EBFCD88
# :OUTPUT:
# pub rsa4096 2017-02-22 [SCEA]
# 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
# uid [ unknown] 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"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo docker run hello-world
# :OUTPUT:
# Hello from Docker!
# This message shows that your installation appears to be working correctly.
# ...(以下略)
最後の sudo docker run hello-world
はインストールできたかどうか確認するためのおまけです。必ず行う必要はありません。
Docker Daemonの起動
Daemon(デーモン)とは?
一応Daemonの説明をしておきます。
Daemonというのは、裏で常駐しているソフトやシステムのことです。
Daemonはジョブが来たら動かして、ジョブが終われば待機しています。
(ただし、Daemonという言葉はLinuxやUnix、macOSに限定されています。WindowsではServiceと呼ばれています。)
httpd
や sshd
のように後ろに d
が付いている場合にはDaemonなんだと解釈して下さい。
起動方法
- 手動で起動
sudo service docker start
- OSの再起動時に自動でDocker Daemonを自動で起動させる
sudo systemctl enable docker
# :OUTPUT:
# Synchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install.
# Executing: /lib/systemd/systemd-sysv-install enable docker
Docker Composeのインストール
docker-compose
は pip
でもインストールできます。
後々dockerをアップデートしていくこと前提なら pip
経由でのインストールが楽です。
なんのこっちゃわからない人は↑の事は忘れてください笑
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# :COMMENT:
# 上の1.24.1はGithubでバージョンを確認して適宜変更してください(参考にReleasesのリンクを貼ってあります)
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
# :OUTPUT:
# docker-compose version 1.24.1, build 4667896b
dockerコマンドをsudo無しで実行
ユーザーをdockerグループに追加します。
試しに $ docker-compose
と打ってみましょう。次のOUTPUTが返ってきたらdockerグループに入れることが必要です。
$ docker-compose
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/containers/json: dial unix /var/run/docker.sock: connect: permission denied
dockerグループに入れます。
sudo groupadd docker
# :OUTPUT:
# groupadd: group 'docker' already exists
# :COMMENT:
# dockerグループが既に存在していると上のメッセージが返ってきます。
# dockerをインストールしたときに作られているはずです。
sudo usermod -aG docker $USER
# :COMMENT:
# 初心者の人へ
# $USERは現在のユーザー名が入っています。手で自分のユーザー名を入力する必要はありません。
# 不安なら念の為以下のコマンドを打ってみましょう。
# echo $USER
newgrp docker
# :COMMENT:
# グループへの追加を反映させるコマンドです。
もう一度 docker ps
を打ってみましょう。次のものが出てくれば完了です。お疲れ様でした。
ちなみに、 docker ps
は起動しているDockerコンテナの一覧を表示させるコマンドです。 ps
はprocessの略ですね。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
以上です。お疲れさまでした。