macOSAppNavi docker VMware 2019年 7月 8日
macOS で開発するだけであれば、Docker Desktop for Mac でも十分かもしれない。 ただし、運用までを Docker にするのであれば、最終運用環境と同じにしておいた方が無難だと考えた。 そこで、今回は 前回説明した VMware Fusion にインストールした ubuntu で Docker を直接管理する。 ただし、コンテナの起動・停止などのために毎回 ubuntu にログインするのも面倒なので、macOS 側から直接実行できるようにしておきたい。 そこで、docker-machine を用いて、macOS 側から docker コマンドを実行できるように設定してみることにした。
cask "docker"
brew bundle
ubuntu 側にも docker をインストールする。また、docker-compose も一緒にインストールしておく。
ssh (cat ~/.ubuntu_ip) # fish の場合
ssh `cat ~/.ubuntu_ip` # それ以外の場合
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
sudo usermod -aG docker hkob
次に docker-machine コマンドで ubuntu の設定をしておく。 この際、 汎用(generic)ドライバ を利用するのだが、設定時にのみパスワードのない sudo 権限が必要となる。 ドライバ設定時のみ NOPASSWD の設定を行うことにする。
ssh (cat ~/.ubuntu_ip)
#%sudo ALL=(ALL:ALL) ALL # コメントにする
%sudo ALL=(ALL) NOPASSWD:ALL
Defaults env_keep += "http_proxy"
Defaults env_keep += "https_proxy"
sudo env
exit
docker-machine create --driver generic --generic-ssh-user=hkob --generic-ip-address=(cat ~/.ubuntu_ip) --generic-ssh-key=$HOME/.ssh/id_rsa ubuntu
alias dockerenv 'eval (docker-machine env ubuntu --shell fish --no-proxy)'
dockerenv
docker image ls -a # docker image の一覧を見る
docker-machine ssh ubuntu
%sudo ALL=(ALL:ALL) ALL