概要
CentOS7のDockerが古すぎるので最新のDockerとDocker Composeをインストールする。
docker-compose.ymlをv3.2とかで書きたいとか無ければ不要だと思います。
下記は公式リファレンスから転記
Compose file format | Docker Engine release |
---|---|
3.3 | 17.06.0+ |
3.2 | 17.04.0+ |
3.1 | 1.13.1+ |
3.0 | 1.13.0+ |
2.2 | 1.13.0+ |
2.1 | 1.12.0+ |
2.0 | 1.10.0+ |
1.0 | 1.9.1.+ |
環境
- CentOS Linux release 7.3.1611 (Core)
- docker Docker version 17.06.0-ce, build 02c1d87
- docker-compose 1.14.0
Docker CE インストール
インストール済みDocker関連パッケージを削除
$ sudo yum remove -y docker docker-common container-selinux docker-selinux docker-engine docker-engine-selinux
必要なパッケージインストール
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
Docker CEのレポジトリ追加
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Docker CEインストール
$ sudo yum install docker-ce
Docker 起動
$ sudo systemctl start docker
OS起動時にDockerを自動起動する
$ sudo systemctl enable docker
Dockerのバージョン確認
$ sudo docker -v
Docker version 17.06.0-ce, build 02c1d87
再起動後にDockerがエラーになってしまう場合
起動しようとしたら下記のようなエラーが出た。
$ sudo systemctl start docker
Job for docker.service failed. See 'systemctl status docker.service' and 'journalctl -xn' for details.
下記で治った。
$ sudo yum -y install libdevmapper.so.1.02
Docker Compose インストール
最新版を入れる場合はgithubのダウンロードページで確認すると早いかも?
$ sudo curl -L https://github.com/docker/compose/releases/download/1.14.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
Docker Compose バージョン確認
$ docker-compose --version
docker-compose version 1.14.0, build c7bdf9e
おわりに
docker-compose.ymlにswarm mode関連の記述をしたい場合は上げるといいですね。
反面、V2の頃に使用できたextendsオプションがV3では使用できないので、使用していた方はdocker-compose.ymlの修正が必要になってきます。