Dockerを1.1.0に更新したばかりなので、次のようになります。
デーモンからのエラー応答:クライアントとサーバーに同じバージョンがありません(クライアント:1.13、サーバー:1.12)
これを修正する方法を知っていますか?
1.0.1に切り替えて、すべてが再び機能するようになりました。
Boot2dockerのインストール後にVMをアップグレードする必要があるようです。
boot2docker 0.12以降からアップグレードする場合は、boot2docker stop && boot2docker download && boot2docker upを使用して既存の仮想マシンを更新できます(インストーラーを使用してアップグレードした後)。既存のデータは失われません。
( https://github.com/boot2docker/osx-installer/releases/tag/v1.1. )
これは、Dockerを更新したが、サービスが再起動されていない場合に発生する可能性があります。次に、更新されたクライアントを使用してDockerデーモンへの接続を試行しますが、デーモン(更新前に既に実行されていた)はまだ古いバージョンを実行しています。
これを修正するには、サービスを再起動します。
sysV init:
service docker restart
systemd:
systemctl daemon-reload
systemctl restart docker
docker-machine
を使用してローカルのVirtualBoxベースのマシンを管理する場合、ソリューションはboot2dockerと同じくらい簡単です。
docker-machine upgrade MACHINE_NAME
docker-machine
に最新のboot2docker.iso
をダウンロードして、アップグレードされたVMの新しいルートファイルシステムとして配置するよう要求します。
ちなみに、VirtualBox-backed docker machineのルートファイルシステムは読み取り専用です。つまり、手動更新はマシンの再起動後も存続できません。それは私にとって驚きでした。
Boot2docker、docker、virtual boxの最新バージョンを使用していましたが、まだこのメッセージが表示されていました。 brew upgrade boot2docker
は最良のアイデアではありません。 boot2docker upgrade
、私は環境変数の束を設定するように頼まれ、それは私のために働いた。
Boot2dockerからこれらを設定するように要求されました(最後の行を参照)。
$ boot2docker upgrade
Latest release for boot2docker/boot2docker is v1.3.0
Downloading boot2docker ISO image...
Success: downloaded https://github.com/boot2docker/boot2docker/releases/download/v1.3.0/boot2docker.iso
to /Users/.../.boot2docker/boot2docker.iso
Waiting for VM and Docker daemon to start...
.........oooooooooooooo
Started.
Writing /Users/.../.boot2docker/certs/boot2docker-vm/ca.pem
Writing /Users/.../.boot2docker/certs/boot2docker-vm/cert.pem
Writing /Users/.../.boot2docker/certs/boot2docker-vm/key.pem
To connect the Docker client to the Docker daemon, please set:
export DOCKER_Host=tcp://192.168.59.103:2376
export DOCKER_CERT_PATH=/Users/.../.boot2docker/certs/boot2docker-vm
export DOCKER_TLS_VERIFY=1
これらの3行を一度に切り取り、端末に貼り付けることができます。
それらが正しいことを確認するには:
$ env
最近のクライアントでDockerサーバーを照会しようとしていました。
私にとっての解決策は次のとおりです。
export DOCKER_API_VERSION=1.21
リファレンス: https://docs.docker.com/engine/reference/commandline/cli/
ここでの正しい答えは非常に古いものです(Dockerはboot2dockerをDocker Machineに名前変更し、いくつかの機能を追加しました)。
とにかく私は同じ問題に直面し、修正するのに約3日かかりました:(
ここに解決策があります
1)boot2docker.iso
の場所を見つける
Sudo find ~/ -name 'boot2docker.iso'
2)boot2docker.iso
ファイルをバックアップした後、削除します
/Users/{user}/.docker/machine/cache/boot2docker.iso
3)docker vmを削除します
docker-machine rm {default}
これも同様に削除する必要があります:
/Users/{user}/.docker/machine/machines/default/boot2docker.iso
4)新しいdocker vmを作成します
docker-machine create --driver virtualbox default
これにより、新しいboot2docker.iso
が最初にダウンロードされ、それを使用してvmが作成されます。
今、これはそれを修正する必要があります:)
次のようなエラーが発生した場合:
Running pre-create checks...
(mega-docker) No default Boot2Docker ISO found locally, downloading the latest release...
Error with pre-create check: "Get https://api.github.com/repos/boot2docker/boot2docker/releases/latest: dial tcp: lookup api.github.com on 192.168.0.1:53: read udp 192.168.0.103:53947->192.168.0.1:53: i/o timeout"
https://api.github.com/repos/boot2docker/boot2docker/releases/latest に移動してboot2docker.iso
ファイルを手動でダウンロードしてから、html_url
をクリックして、最後にファイルのダウンロードを選択します。
ファイルを取得し、/Users/{user}/.docker/machine/cache/
に手動で配置したら
最後にこのコマンドを再実行しますdocker-machine create --driver virtualbox default
私のために働いた唯一のことは、プロセスを強制終了し、「Sudo service docker start」で開始することでした。
私のために働いた唯一のことは、VirtualBoxからboot2dockerイメージを削除してから~/.boot2docker
フォルダー、最後にboot2docker init
もう一度。
boot2docker削除
boot2docker init
私のために働いた。もちろん、その前後にデーモンを停止/起動します。
これは私のために働いた:VMをシャットダウンし、削除して再作成し、再び起動するだけです。 shellinitを再実行して、ENV変数が復旧したときに正しいIPアドレスで設定されるようにします。
$ boot2docker poweroff && \
boot2docker delete && \
boot2docker init && \
boot2docker up
$ eval `boot2docker shellinit`
Boot2dockerではなくAnsibleでアクセスした場合の解決策は次のとおりです。docker_api_version: auto
引数
- name: Mongo data container
docker:
docker_api_version: auto
name: mongo-primary-dc
image: debian:wheezy
state: present
volumes:
- /data
理由は、Ansibleが使用するdocker-pyモジュールは、Ubuntu apt-getリポジトリと同じバージョンではないことが多いためだと思います。
私の解決策は、VirtualBoxでdocker VMで[閉じる]> [電源オフ]を実行し、Kitematicを再起動することでした。
Brewのバージョンは、docker.ioのWebサイトにあるバージョンと比較して時代遅れです。したがって、最善の方法はWebサイトにアクセスしてインストールファイルをダウンロードすることだと思います。
Boot2docker(v1.7.1)の最新バージョンがあり、クライアントサーバーの不一致エラーが発生しました。それから私はただ走ったboot2docker upgrade
そして、それは問題を解決しました。