CentOSにDocker・docker-composeをインストールして使えるようにする方法
CentOSにDockerをインストールする方法をお伝えします。
この記事を書いている僕はフロントエンドのエンジニアでして、個人でサービスを作る時にDockerをよく使うのですが、毎回、Dockerのインストール方法を忘れてしまうので、自分の備忘録がてら、この記事を書いています。
この記事を読むことによって、初心者でもCentOS上にDockerとdocker-composeをインストールして使えるようになります。
Linuxの基本操作は分かっているものとし、VPS(AWS Lightsail・さくらVPS等)などサーバの契約は済ませていて、CentOSのインストールはされているものとして進めます。
今回はコマンドはCentOS7を対象に解説しています。
CentOSにDocker・docker-composeをインストールして使えるようにする方法
Dockerのインストール
以下を順番に実行します。
$ sudo yum remove docker docker-common docker-selinux docker-engine
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum install docker-ce -y
$ sudo systemctl start docker
$ sudo systemctl enable docker
docker-compose のインストール
以下を順番に実行します。ただし1.25.5
となっているバージョンの部分は必要に応じて書き換える。
$ sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
順番に解説していきます。
CentOS用 Docker CE をインストールする
本記事の通りにすれば問題ありませんが、Docker公式の情報も参考になります。
sudo yum -y install docker
コマンドでインストールすると古いDockerがインストールされてしまうみたいなので、公式のDocker-CE最新がインストールされるようにします。
コマンドを書いてある順番に実行していってください。
1.古いバージョンをアンインストール
通常は不要ですが、古いバージョンのDockerをアンインストールします。
sudo yum remove docker docker-common docker-selinux docker-engine
を実行。
$ sudo yum remove docker \
docker-common \
docker-selinux \
docker-engine
2.必要なパッケージをインストールします
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
でインストール。
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3.リポジトリのセットアップをします
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
でセットアップ。
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
以下の--enable
オプションは、通常は実行せずに何もしなくて問題ありません。
$ sudo yum-config-manager --enable docker-ce-edge
$ sudo yum-config-manager --enable docker-ce-test
有効にした後に無効にしたい場合は–disableオプションで無効にしてください。
$ sudo yum-config-manager --disable docker-ce-edge
4.Docker CEをインストール
sudo yum install docker-ce -y
でDocker CEの最新版をインストールします。
$ sudo yum install docker-ce -y
5.Docker起動
sudo systemctl start docker
で、Dockerの起動をします。
$ sudo systemctl start docker
docker --version
で、dockerが起動しているかどうか確認してみましょう。バージョンが表示されるはずです。
$ sudo docker --version
Docker version 19.03.13, build 4484c46d9d
6.Dockerの自動起動も設定する
CentOSが再起動した時に自動的にDockerが立ち上がるようにsudo systemctl enable docker
で設定します。
$ sudo systemctl enable docker
これでDockerのインストールは完了です。
Dockerをsudoなしで実行できるように、ユーザをDockerグループに追加する
次にプログラムを置くディレクトリ配下にてsudo
なしでDocker
が実行できるようにしていきます。一般ユーザーでdocker
コマンドをいちいちsudo
付けて実行するのは面倒だと思いますので。
これは必要に応じて、設定してください。
1.dockerグループが存在するか確かめる
cat /etc/group | grep docker
コマンドでdocker
というグループが存在するかを確認します。
$ cat /etc/group | grep docker
docker ce
をインストールしているので、既に存在しているはずです。もしdockerグループがない場合にはdockerグループを作ってください。(rootにて実行)# groupadd docker
2.現在ログイン中のユーザーをdockerグループに追加します
sudo usermod -aG docker ユーザー名
のコマンドで現在ログインしているユーザーをdockerグループに追加します。ユーザー名の部分はdockerグループに追加したいユーザー名を指定します。
$ sudo usermod -aG docker ユーザー名
$ whoami
グループの一覧が表示されるので、dockerが表示されていることを$ groups ユーザー名
で確認します。(ユーザー名の部分はsshでログインしているユーザー名で置き換えてください)
$ groups ユーザー名
3.Dockerを扱うディレクトリの所有者とグループを変更する
今回は例として、root直下の /app
以下にアプリケーションを配置する前提で進めます。/app
は例なので、ご自身の環境に読み替えてください。
sudo mkdir /app
でディレクトリを作成して、$ sudo chown -R ユーザー名:docker /app
で権限グループを変更します。
ex) ユーザー名がcentos
なら sudo chown -R centos:docker /app
となります
$ sudo mkdir /app
$ sudo chown -R ユーザー名:docker /app
これで、sudoなしでdockerコマンドが/app配下では可能になります。
4.dockerを再度、起動する
この設定後にdockerが落ちた状態になっていると思うので、再度 sudo systemctl start docker
で起動します。
sudo systemctl start docker
dockerコマンドが効かなれければ一旦sshで入り直す
また、もしdockerコマンドが正常に動作しなければ、一旦ログアウトしてsshで入り直してください。dockerグループに入れていなくてdockerコマンド打てない場合があります。
docker-compose のインストール
1.docker-composeインストール
sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
を実行してdocker-composeをgithubからダウンロードします。
ちなみに1.25.5
のバージョン部分は最新のバージョンを確認して置き換えてください。
$ sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
2.docker-compose にsudo実行権限あたえる
sudo chmod +x /usr/local/bin/docker-compose
のコマンドで実行権限を与えます。
$ sudo chmod +x /usr/local/bin/docker-compose
docker-composeが正常に動作するかをバージョン情報の表示 $ docker-compose --version
で確認します。
$ docker-compose --version
docker-compose をsudo で実行できるようにする
docker-compose
をインストールしても、そのままだとsudo
で実行できないため、sudo
で実行できるように対応しておきます。
$ sudo visudo
を実行して以下の部分を編集します。Defaults secure_path
に/usr/local/bin
を追加する修正です。
修正前)
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
↓
修正後)
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/local/bin:/usr/bin
これでdocker-compose
がsudo
でも実行できるようになります。
まとめ
Dockerのインストール
以下を順番に実行するだけ。
$ sudo yum remove docker docker-common docker-selinux docker-engine
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum install docker-ce -y
$ sudo systemctl start docker
$ sudo systemctl enable docker
docker-compose のインストール
以下を順番に実行するだけ。
$ sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
ご参考になれば幸いです。
※当サイトでは一部のリンクについてアフィリエイトプログラムを利用して商品を紹介しています