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-edge4.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 docker2.現在ログイン中のユーザーを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
ご参考になれば幸いです。
※当サイトでは一部のリンクについてアフィリエイトプログラムを利用して商品を紹介しています
