状況
環境はdocker for mac、docker-machine起動にはvertualboxを使用している。
Dockerの学習中にdocker-machineを起動したのち
Docker psコマンドを実行したら以下のエラーが表示された。
error.shell
could not read CA certificate "/Users/example/.docker/machine/machines/docker-host1/ca.pem": open /Users/example/.docker/machine/machines/docker-host1/ca.pem: no such file or directory
原因
どうやらホスト周りをdocker-machine起動時にいじっていたのが原因。
eval $(docker-machine env host1)などを実行していた。
現状確認
まず現状を確認する方法として
Docker-machine lsを実行した際にACTIVEの項目に*がついていたら
それは現在docker-machine上のコンテナを操作しているということになり
Docker for macのコンテナは操作対象になっていないということになる。
対応方法
これを解消するコマンドとして
unset.shell
docker-machine env --unset
や
unset2.shell
eval $(docker-machine env -u)
を実行することでdocker-machineからdocker for macに操作対象を移すことができる。
注意点
非常にわかりにくい例としてdocker-machine lsを実行しても
何も表示されない状態。つまりdocker-machine rmを実行した後の状態でも
前述のエラーが表示されることがある。
この場合でもdocker-machine env --unsetでエラーが解消された。