Help us understand the problem. What is going on with this article?

今からでも遅くない!! 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

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした