不要直接sudo apt-get install docker,因为容器docker根本就不是这个。
如果已经中招了,使用apt-get remove docker删除,否则后患无穷。
以前的很多教程都是安装Docker.IO的,但原来的版本已经过时了,需要彻底清除,否则也会招来一大堆问题。
清除办法:
sudo apt-get remove docker.io find / -name "*docker.io*"
然后将列出的文件全部删除, rm xxx。
这里是安装的正常步骤,经验证可行:
apt-get update apt-get install apt-transport-https apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 bash -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list" apt-get update apt-get install lxc-docker
然后是运行,可以使用下面的命令启动docker的本机服务(跳过阿里云172网段设置的一个大坑-鄙视一下。参看知乎:https://www.zhihu.com/question/24863856,不如我这里方法好使。感兴趣的可以直接运行docker -d,也许人品好...):
docker --bip 192.168.100.1/24 -d & #然后就可以(注意一定要加上sudo): sudo docker info sudo docker images sudo docker ps
注意:
上面的docker.io也属于较老的版本,从官网安装的docker-py等运行会出现Server版本不匹配的错误。
最新的版本是docker-engine。不过,按照官网的安装是无法启动Server的,安装最新版用这里的方法:
wget -qO- https://get.docker.com/ | sh
如果上面的不能成功,尝试:
#wget -c参数支持断点续传,网络不好断线时重新运行即可。 wget -c https://get.docker.com/ -O docker-setup.sh sudo chmod +x docker-setup.sh sudo ./docker-setup.sh
但是,按照提示的docker daemon方法在阿里云仍然无法正常启动(报出大量不明就里的错误)。
主要因为缺省的网段被阿里云系统预分配占用了,手动分配即可:
docker --bip 192.168.100.1/24 daemon &
然后基本上就都ok了,docker-py也可以使了。
目前的即将发布的版本是1.11,已经可以下载测试版试用(建议将curl换为wget -c,支持断点续传):
# To install, run the following command as root: curl -sSL -O https://test.docker.com/builds/Linux/x86_64/docker-1.11.0-rc4.tgz # wget -c https://test.docker.com/builds/Linux/x86_64/docker-1.11.0-rc4.tgz sudo tar -zxf docker-1.11.0-rc4.tgz # Then start docker in daemon mode: sudo /usr/local/bin/docker daemon
要做主控机器的话,需要安装docker-machine。这个是官方的(注意里面的v.0.7.0-rc2是版本号):
curl -L https://github.com/docker/machine/releases/download/ v0.7.0-rc3/docker-machine-`uname -s`-`uname -m` \ >/usr/local/bin/docker-machine && \ chmod +x /usr/local/bin/docker-machine
如果curl失败,参考下面的脚本(Ubuntu):
wget https://github.com/docker/machine/releases/download/ v0.7.0-rc3/docker-machine-Linux-x86_64 -O docker-machine sudo cp docker-machine /usr/local/bin/docker-machine sudo chmod +x /usr/local/bin/docker-machine
但这个的文件是存在Amazon上的,Aliyun上竟然访问不了!!!
先抓到本地(有的地方需要papapa):
# 注意:这里不能使用`uname -s`-`uname -m`这种形式,因为下载机可能与目标系统不一致。 wget -c https://github.com/docker/machine/releases/download/ \ v0.7.0-rc3/docker-machine-Linux-x86_64 \ -O docker-machine
然后上传:
scp ./docker-machine-Linux-x86_64 [email protected](自己的服务器地址)
ssh进去,运行。
cp ./docker-machine-Linux-x86_64 /usr/local/bin/docker-machine chmod +x /usr/local/bin/docker-machine
运行docker-machine,OK!
wget https://github.com/docker/compose/releases/download/1.7.0-rc2/docker-compose-`uname -s`-`uname -m` -O docker-compose cp docker-compose /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
如果不能下载,参照上面4.的办法处理。