阿里云服务器安装docker与不少的坑,这里是本人踩过后的经验分享。也许以后还会有变化,欢迎大家补充。最新补充了:由于1.10.3以后,docker-engine的启动方式变化带来的问题和阿里云网段分配问题的解决方法。
1、阿里云服务器装Docker-基于Ubuntu14.04
不要直接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
2、Docker在阿里云镜像上运行要注意的地方
然后是运行,可以使用下面的命令启动docker的本机服务(跳过阿里云172网段设置的一个大坑。参看:
不如我这里方法好使。感兴趣的可以直接运行docker -d,也许人品好):
docker --bip 192.168.100.1/24 -d &
#然后就可以(注意一定要加上sudo):
sudo docker info
sudo docker images
sudo docker ps
3、最新版本1.10.3的Docker安装
注意:
上面的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
4、Docker-Machine安装的曲折之路
要做主控机器的话,需要安装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 root@123.123.123.123(自己的服务器地址)
ssh进去,运行。
cp ./docker-machine-Linux-x86_64 /usr/local/bin/docker-machine
chmod +x /usr/local/bin/docker-machine
运行docker-machine,OK!
5、安装Docker-compose
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.的办法处理。