同一台机器上的多个 docker 个客户端
multiple docker clients on the same machine
由于我经常使用 docker 和 docker-machine,我必须同时使用多个 docker 版本。
我们都知道这有多难:
$ docker ps
Error response from daemon: client is newer than server (client API version: 1.23, server API version: 1.22)
所以,我的问题是:(如何)可以在我的 Ubuntu 16.04 上 运行 多个版本的 docker 客户端?理想情况下,一旦我输入 docker-machine
.
的主机,它就会自动 select 正确的版本
旁注:我知道如何更新客户端或服务器。但我仍然需要使用不同的版本。
我找到了适合我的解决方案:
mkdir /opt/docker && cd /opt/docker
wget https://get.docker.com/builds/Linux/i386/docker-1.11.2.tgz
wget https://get.docker.com/builds/Linux/i386/docker-1.11.0.tgz
wget https://get.docker.com/builds/Linux/i386/docker-1.10.0.tgz # versions you want
tar -xzf docker-1.11.2.tgz -C 1.11.2
tar -xzf docker-1.11.0.tgz -C 1.11.0
tar -xzf docker-1.10.0.tgz -C 1.10.0
将类似的内容添加到您的 .bashrc
PATH_DOCKER=$PATH
dmenter() {
case in
swarm)
eval $(dm env --swarm swarm)
VERSION=$(docker-machine version swarm)
export PATH=/opt/docker/$VERSION/usr/local/bin:$PATH_DOCKER
;;
"")
eval $(docker-machine env --unset)
export PATH=$PATH_DOCKER
;;
*)
eval $(docker-machine env $*)
VERSION=$(docker-machine version $*)
export PATH=/opt/docker/$VERSION/usr/local/bin:$PATH_DOCKER
;;
esac
}
现在您可以使用 dmenter <host>
输入您的 docker,并且始终可以使用正确的客户端版本。
由于我经常使用 docker 和 docker-machine,我必须同时使用多个 docker 版本。 我们都知道这有多难:
$ docker ps
Error response from daemon: client is newer than server (client API version: 1.23, server API version: 1.22)
所以,我的问题是:(如何)可以在我的 Ubuntu 16.04 上 运行 多个版本的 docker 客户端?理想情况下,一旦我输入 docker-machine
.
旁注:我知道如何更新客户端或服务器。但我仍然需要使用不同的版本。
我找到了适合我的解决方案:
mkdir /opt/docker && cd /opt/docker
wget https://get.docker.com/builds/Linux/i386/docker-1.11.2.tgz
wget https://get.docker.com/builds/Linux/i386/docker-1.11.0.tgz
wget https://get.docker.com/builds/Linux/i386/docker-1.10.0.tgz # versions you want
tar -xzf docker-1.11.2.tgz -C 1.11.2
tar -xzf docker-1.11.0.tgz -C 1.11.0
tar -xzf docker-1.10.0.tgz -C 1.10.0
将类似的内容添加到您的 .bashrc
PATH_DOCKER=$PATH
dmenter() {
case in
swarm)
eval $(dm env --swarm swarm)
VERSION=$(docker-machine version swarm)
export PATH=/opt/docker/$VERSION/usr/local/bin:$PATH_DOCKER
;;
"")
eval $(docker-machine env --unset)
export PATH=$PATH_DOCKER
;;
*)
eval $(docker-machine env $*)
VERSION=$(docker-machine version $*)
export PATH=/opt/docker/$VERSION/usr/local/bin:$PATH_DOCKER
;;
esac
}
现在您可以使用 dmenter <host>
输入您的 docker,并且始终可以使用正确的客户端版本。