目的
VagrantでOracleLinux(7.x)を立ち上げて、ついでにDockerのインストールと起動までやりたい。
(ホストはWindows10 HomeEdition。Vagrant、VirtualBoxはセットアップ済み)
Vagrant Boxの情報を調べる
以下のサイトで確認。Oracle Linux Vagrant boxのURLを確認。
Oracle Linux Vagrant boxes
https://yum.oracle.com/boxes/
今回はOracle Linux 7.x想定なので
https://oracle.github.io/vagrant-projects/boxes/oraclelinux/7.json
を使用する。
Oracle Linux へのDockerのインストール情報を調べる
Oracle Linux DockerではDocker-docs-jaに翻訳があるが、1.13.RCであり、現在はYumリポジトリの設定が異なりこの部分は参考にならない。
https://docs.docker.jp/engine/installation/linux/oracle.html
Dockerマニュアル(英語)のインストールマニュアルをみるとLinuxのディストリビューションの章からOracleLinuxがなくなっている。
https://docs.docker.com/engine/install/
以下blogにOracleLinuxのOracle yum repositoryの設定について言及がある。
A Simple Guide to docker installation on Oracle Linux 7.5 [Updated Oct 2019]
https://blogs.oracle.com/blogbypuneeth/a-simple-guide-to-docker-installation-on-oracle-linux-75
2020/10時点では、上記Boxで取得したOracleLinuxのyum repositoryの設定として「ol7_latest」「ol7_addons」がデフォルトで有効であり、特に追加で設定変更は不要であった。上記blogにある「ol7_UEKR4」は無効のままでも問題なかった。
Vagrantfile
Vagrantfileの例
Vagrant.configure("2") do |config|
config.vm.box = "oraclelinux/7"
config.vm.box_url = "https://oracle.github.io/vagrant-projects/boxes/oraclelinux/7.json"
config.vm.network :forwarded_port, id: "ssh", guest: 22, host: 2210
config.vm.provider "virtualbox" do |vb|
vb.memory = "8196"
end
config.vm.provision "shell", inline: <<-SHELL
i=1; while [ $i -le 10 ]; do echo $i;yum -y --disablerepo=* --enablerepo=ol7_addons,ol7_latest install docker-engine;if [ $? -eq 0 ];then break;fi;i=$(expr $i + 1);done
systemctl start docker.service
systemctl enable docker.service
SHELL
end
ちょっと説明。
-
config.vm.network :forwarded_port, id: "ssh", guest: 22, host: 2210
- SSHポートフォワーディングを22→2210で設定。ホストのlocahostに2210ポートでssh接続。
-
vb.memory = "8196"
- 割り当てメモリを8GBに。お好みで。
-
i=1; while [ $i -le 10 ]; do echo $i;yum -y --disablerepo=* --enablerepo=ol7_addons,ol7_latest install docker-engine;if [ $? -eq 0 ];then break;fi;i=$(expr $i + 1);done
- 「yum -y docker-engine」 だけでよいはず。ここでは、yumのupdateに時間がかかるので必要なレポジトリのみに絞る。また一度ではなぜか成功せず何度かやると成功することがあったので、成功するまで(リトライ上限10回)繰り返しとした。
-
systemctl start docker.service
-
systemctl enable docker.service
- Dockerサービスの起動と自動起動の有効化
Vagrant 起動
> vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'oraclelinux/7'...
<中略>
> vagrant ssh
Welcome to Oracle Linux Server release 7.8 (GNU/Linux 4.14.35-2025.400.8.el7uek.x86_64)
The Oracle Linux End-User License Agreement can be viewed here:
* /usr/share/eula/eula.en_US
For additional packages, updates, documentation and community help, see:
* https://yum.oracle.com/
[vagrant@localhost ~]$ sudo su -
[root@localhost ~]# docker version
Client: Docker Engine - Community
Version: 19.03.11-ol
API version: 1.40
Go version: go1.14.7
Git commit: 78418d7
Built: Tue Aug 18 22:46:21 2020
OS/Arch: linux/amd64
Experimental: false
<以下略>