LoginSignup
6

More than 3 years have passed since last update.

posted at

updated at

今からでも遅くない!! dockerとdocker-composeをubuntuにインストール

前置き

  • Dockerを使いこなしている人はUbuntuに再インストールするときの忘備録としてお役立てください
  • Dockerの公式ドキュメントに解説をところどころ加えた記事です

インストール環境

私のインストールするUbuntuの環境です。

terminal
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.2 LTS
Release:        18.04
Codename:       bionic

dockerのインストールと起動

docker コマンドが使えるようにしていきましょう。

インストール

terminal
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と呼ばれています。)
httpdsshdのように後ろに d が付いている場合にはDaemonなんだと解釈して下さい。

起動方法

  • 手動で起動
terminal
sudo service docker start
  • OSの再起動時に自動でDocker Daemonを自動で起動させる
terminal
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-composepip でもインストールできます。
後々dockerをアップデートしていくこと前提なら pip 経由でのインストールが楽です。
なんのこっちゃわからない人は↑の事は忘れてください笑

terminal
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グループに入れることが必要です。

terminal
$ 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グループに入れます。

terminal
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の略ですね。

terminal(output)
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

以上です。お疲れさまでした。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
6