参考
手順
鍵のパスワードを何度も聞かれるので先に読み込んでおく
ssh-agent bash
ssh-add ~/.ssh/id_rsa
a.sh
IP=192.168.2.2
KEY=~/.ssh/id_rsa
NAME=machine1
docker-machine create \
--driver generic \
--generic-ip-address=$IP \
--generic-ssh-key $KEY \
$NAME
接続
確認
docker-machine env $NAME
docker-machine ssh $NAME
evalするとdockerコマンドで操作できる
eval $(docker-machine env $NAME)
docker ps -a
docker pull alpine
docker run --rm -it alpine /bin/sh
volumeの扱い
eval $(docker-machine env $NAME)
docker run --rm -it -v /root:/mnt alpine /bin/sh
とすると、dockerが動いているホスト上の /root が /mntにマウントされる。
docker-machine を実行したホストの/root がマウントされるのではないことに注意。
memo: jessieにdockerインストール
# https://docs.docker.com/engine/installation/linux/debian/
set -eu
apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
echo "deb http://apt.dockerproject.org/repo debian-jessie main" > /etc/apt/sources.list.d/docker.list
apt update
apt install -y docker-engine
docker-machineの設定ファイル
- ~/.docker/machine/machines/ホストごとにフォルダ/config.json
- config.json 内にファイルの絶対パスが書かれている。
- ~/.docker/machine/machines/ホストごとにフォルダ/id_rsa
- ~/.docker/machine/certs/ホストの鍵(?)
ここの id_rsa は以下で指定した鍵のコピーが置かれる。
docker-machine create \
--driver generic \
--generic-ip-address=$IP \
+ --generic-ssh-key ~/.ssh/id_rsa \
$NAME
(検証中)docker-machine操作するホストを複数にできない
- mac で docker-machineした後、同じホストに対し Linuxでdocker-machineすると macでは接続できなくなる。
- 他の端末で共有するためには
--storage-path
で /opt/ とか指定しておくのが吉 - docker-machine を追加し直すと、コンテナが停止する。(--restart=alwaysの場合は未確認)