标签 阿里云 下的文章

阿里云部署Docker(2)
时间:2014-11-22 来源:服务器之家 投稿:root

阿里云部署Docker系列文章目录:
阿里云部署Docker(1)----阿里云Ubuntu环境搭建Docker服务
阿里云部署Docker(2)
阿里云部署Docker(3)----指令学习
阿里云部署Docker(4)----容器的使用
阿里云部署Docker(5)----管理和发布您的镜像
阿里云部署Docker(6)----解决删除镜像问题
阿里云部署Docker(7)----将容器连接起来
阿里云部署Docker(8)----安装和使用redmine
阿里云部署Docker(9)----Dockerfile脚本定制镜像

之前有一篇文章讲过在阿里云中安装Docker,相对来说那个是安装,但是安装完之后我们一般会碰到问题。

今天我给大家记录一下我的新的解决过程。

环境还是ubuntu12.04,假设我们已经把内核升级到了3.8以上。

便捷安装Docker命令:

curl -s https://get.docker.io/ubuntu/ | sudo sh

这样一条指令就完成了安装。

直接执行如下命令:

sudo docker run -i -t ubuntu /bin/bash

不行,会报错。

如下:

root@iZ28ikebrg6Z:~# docker run -i -t ubuntu /bin/bash
2014/10/15 21:19:19 Cannot connect to the Docker daemon. Is 'docker -d' running on this host?

好,我们的守候进程没有起来。
于是我们输入命令:
root@iZ28ikebrg6Z:~# docker -d

出现如下错误:
root@iZ28ikebrg6Z:~# docker -d

2014/10/15 21:21:01 docker daemon: 1.2.0 fa7b24f; execdriver: native; graphdriver: [be668f49] +job serveapi(unix:///var/run/docker.sock) [info] Listening for HTTP on unix (/var/run/docker.sock) [be668f49] +job init_networkdriver() [be668f49.init_networkdriver()] creating new bridge for docker0 Could not find a free IP address range for interface 'docker0'. Please configure its address manually and run 'docker -b docker0' [be668f49] -job init_networkdriver() = ERR (1) 2014/10/15 21:21:01 Could not find a free IP address range for interface 'docker0'. Please configure its address manually and run 'docker -b docker0'

这个时候,很多人很困惑,搜索很多解决方法而不得解决,我也是,我试过很多方法,不过,我没记录下来,抱歉,现在我只知道正确的解决方法了

它来自http://segmentfault.com/q/1010000000438713
大家都在搜如何在阿里云里面部署Docker

里面有一个人说:

改下路由表就可以了:

sudo route del -net 172.16.0.0 netmask 255.240.0.0

反正其他的我都试烂了,所以,也不介意多试这个。 root@iZ28ikebrg6Z:~# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 115.28.83.247 0.0.0.0 UG 0 0 0 eth1 10.0.0.0 10.163.191.247 255.0.0.0 UG 0 0 0 eth0 10.0.3.0 255.255.255.0 U 0 0 0 lxcbr0 10.163.176.0 255.255.240.0 U 0 0 0 eth0 115.28.80.0 * 255.255.252.0 U 0 0 0 eth1 172.16.0.0 10.163.191.247 255.240.0.0 UG 0 0 0 eth0 192.168.0.0 10.163.191.247 255.255.0.0 UG 0 0 0 eth0 root@iZ28ikebrg6Z:~# route del -net 172.16.0.0 netmask 255.240.0.0
root@iZ28ikebrg6Z:~# docker -d

2014/10/15 21:45:41 docker daemon: 1.2.0 fa7b24f; execdriver: native; graphdriver: [12f8faab] +job serveapi(unix:///var/run/docker.sock) [info] Listening for HTTP on unix (/var/run/docker.sock) [12f8faab] +job init_networkdriver() [12f8faab.init_networkdriver()] creating new bridge for docker0 [12f8faab.init_networkdriver()] getting iface addr [12f8faab] -job init_networkdriver() = OK (0) 2014/10/15 21:45:41 WARNING: Your kernel does not support cgroup swap limit. [info] Loading containers: [info] : done. [12f8faab] +job acceptconnections() [12f8faab] -job acceptconnections() = OK (0) [info] POST /images/create?fromImage=ubuntu&tag= [12f8faab] +job pull(ubuntu, )
嘿嘿,成功了。

至少没报错。好,守候进程算是起来了,不过,我们还是要验证一下能不能真正的用。

新开一个终端,输入:

root@iZ28ikebrg6Z:~# docker pull ubuntu
Pulling repository ubuntu
a9561eb1b190: Pulling dependent layers
3db9c44f4520: Downloading [====================> ] 26.42 MB/63.51 MB 14m3s
c5881f11ded9: Pulling dependent layers
195eb90b5349: Pulling dependent layers
2185fd50e2ca: Pulling dependent layers
463ff6be4238: Pulling dependent layers
9cbaf023786c: Pulling dependent layers
511136ea3c5a: Download complete
6cfa4d1f33fb: Download complete

拉取成功了。有不会报错了。好了,至此,我们可以正常的操作Docker了。哈哈。

root@iZ28ikebrg6Z:~# docker run ubuntu /bin/echo "hello"
hello
root@iZ28ikebrg6Z:~# docker run -i -t ubuntu /bin/bash
root@9fbad8b573d3:/#

而当你试图使用没有拉取过的镜像的时候,它会自动的帮你去拉取。例如,你突然使用centos。

root@iZ28ikebrg6Z:~# docker run centos /bin/echo 'hello world'
Unable to find image 'centos' locally
Pulling repository centos

转载请注明原文地址:http://www.server110.com/docker/201411/11136.html

阿里云部署Docker(1)阿里云Ubuntu环境搭建Docker服务
时间:2014-11-22 来源:服务器之家 投稿:root

阿里云部署Docker系列文章目录:
阿里云部署Docker(1)----阿里云Ubuntu环境搭建Docker服务
阿里云部署Docker(2)
阿里云部署Docker(3)----指令学习
阿里云部署Docker(4)----容器的使用
阿里云部署Docker(5)----管理和发布您的镜像
阿里云部署Docker(6)----解决删除镜像问题
阿里云部署Docker(7)----将容器连接起来
阿里云部署Docker(8)----安装和使用redmine
阿里云部署Docker(9)----Dockerfile脚本定制镜像

经过昨天和今天的不断奋战,在阿里云里面搭建Docker并不容易。所以我觉得有必要记录下来,以供后人学习。以及我自己的回顾。

首先,查看我们的系统版本:

cat /etc/issue

的到的输出是
Ubuntu 12.04.1 LTS \n \l

我们顺便看一下内核版本,因为Docker需要在3.8以上运行。
uname -r

可以得到你的内核版本,我因为要装docker,所以按照docker官网的步骤升级了内核,所以输出是:
3.8.0-44-generic

docker 的Ubuntu安装说明在:https://docs.docker.com/installation/ubuntulinux/

如何升级内核?

升级内核的步骤其实很简单,根据Docker官网提供的就好:

指令如下:

install the backported kernel

$ sudo apt-get update
$ sudo apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring

install the backported kernel and xorg if using Unity/Xorg

$ sudo apt-get install --install-recommends linux-generic-lts-raring xserver-xorg-lts-raring libgl1-mesa-glx-lts-raring

reboot

$ sudo reboot

需要重启。

更新安装源

我在执行apt-get install docker.io的时候,总是提示找不到,所以说明我的安装源出了问题,所以,有必要说明如何搞定安装源,让我们的过程无错进行。

首先,备份源列表

cp /etc/apt/sources.list /etc/apt/sources.list_backup

然后,用vim 打开 源列表文件。
vim /etc/apt/sources.list

清空里面的已有列表,然后,我们选择阿里云列表,因为我们是阿里云服务器嘛。

阿里云源列表如下:

deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

然后执行更新命令
apt-get update

这个时候会出现公钥问题

提示的错误类似如下:

W: There is no public key available for the following key IDs:
8B48AD6246925553

于是,我们又得解决这个问题。

执行如下命令:

apt-get install debian-keyring debian-archive-keyring && sudo apt-key update
apt-key adv --recv-key --keyserver keyserver.ubuntu.com 8B48AD6246925553

上述命令,的那个数字要换成你的,亲。

然后,再次执行apt-get update。发现可以了。没有问题。

于是,我们又回到“正事”,安装docker

apt-get install docker.io

这次顺利的完成了安装。

开启服务

root@iZ28ikebrg6Z:/etc/apt# service docker.io restart
stop: Unknown instance:
docker.io start/running, process 11430

不过接下来还会碰到问题。

docker run -i -t ubuntu /bin/bash
2014/10/15 11:31:30 Cannot connect to the Docker daemon. Is 'docker -d' running on this host?

这个问题,下节继续。

转载请注明原文地址:http://www.server110.com/docker/201411/11135.html

阿里云安装Docker体会
时间:2014-11-22 来源:服务器之家 投稿:root
趁着国庆放假时间比较充裕,把之前在阿里云上的Docker实践说一下,从Docker的安装到最后正常运行经历了一些波折,以下是安装步骤。
1) 选择Ubuntu 14.04 64位镜像,uname后发现内核是3.13.0-32-generic,因此可以很好支持docker。
2) 安装docker.io apt-get update
apt-get install docker.io

3) 运行docker daemon service docker.io start

ps后发现进程没起来,奇怪,什么问题呢?查了日志/var/log/upstart/docker.io.log:
    [7bee03ac] +job init_networkdriver()
    [7bee03ac.init_networkdriver()] creating new bridge for docker0
        Could not find a free IP address range for interface 'docker0'. Please configure its address manually and run 'docker -b docker0'
    [7bee03ac] -job init_networkdriver() = ERR (1)
问题找到,原来是无法为docker0分配IP地址,于是运行“route -n“,发现以下路由条目都被占了:
   10.0.0.0,172.16.0.0 ,192.168.0.0
docker启动时会在宿主机器上创建一个名为docker0的虚拟网络接口,它会从RFC1918定义的私有地址中随机选择一个主机不用的地址和子网掩码,并将它分配给docker0。

所以,尝试删除了172.16.0.0的路由条目: route del -net 172.16.0.0 netmask
255.240.0.0

再次启动docker,成功了: service docker.io start

4) 尝试拉一些image: docker pull ubuntu:14.04

这个操作会到docker官方registry去拉image,速度相当的慢,一个image花了超过20分钟下载到本地。

5) 成功下拉后运行docker images看下:

REPOSITORY TAG
IMAGE
ID CREATED
VIRTUAL SIZE

ubuntu 14.04
c3d5614fecc4 3 days
ago 194.9
MB
6) 运行容器试一下效果:
docker run -i -t ubuntu:14.04 echo "Hello
World!"

Hello World!

docker ps -lCONTAINER
ID IMAGE
COMMAND
CREATED
STATUS PORTS
NAMES

f79bc34a30cd ubuntu:14.04 echo
'Hello World!' 11 seconds
ago Exited (0) 10 seconds
ago
sad_mclean

bravo,安装配置成功!

比较遗憾的是docker官方registry在美国,获取镜像花的时间太长,而且说不准什么时候会被“墙”了(以前发生过)。在此衷心希望阿里云能出个docker registry方便我们下拉镜像。

转载请注明原文地址:http://www.server110.com/docker/201411/11144.html

如何在阿里云主机上安装docker
时间:2014-11-22 来源:服务器之家 投稿:root

因为debian 7安装docker的手续比较麻烦,所以我把阿里云的系统换成了ubuntu 14.04,然后参考:https://docs.docker.com/installation/ubuntulinux/

还算比较方便:apt-get update && apt-get install docker.io,然后再改两个配置就完事了。

不过,在你运行docker run -i -t ubuntu /bin/bash的时候,会报错,说是docker -d好象没有运行,这不科学 啊,刚刚不是装好的吗?

于是ps aux|grep docker,果然没有进程,于是直接输入:docker -d,然后就发现报错了:

XML/HTML代码

2014/08/18 12:05:42 Could not find a free IP address range for interface 'docker0'. Please configure its address manually and run 'docker -b docker0'

老规矩,内事不决问度娘,外事不决问谷歌,结果居然看到有人回复 :

大小: 46.71 K 尺寸: 500 x 174 浏览: 68 次 点击打开新窗口浏览全图

当时这个心就碎了,心想这不科学啊,于是再google,就真的发现了:

大小: 65.11 K 尺寸: 500 x 235 浏览: 61 次 点击打开新窗口浏览全图

OK,那就试试吧:

XML/HTML代码

sudo brctl addbr docker0 # create your bridge

sudo brctl addif docker0 eth0 # mask an existing interface using the bridge

sudo ip link set dev docker0 up # bring it up - not really sure if this is necessary or is it done automatically

sudo ifconfig docker0 10.0.0.4 # give it an IP

当然要运行brctl还是要装一个bridge-utils工具的,当然这个ubuntu会提醒你,一步步的做完后,docker 果然可以启动了。这时候再运行一下,service docker.io start,然后ps aux|grep docker,进程还活着。

于是输入:

XML/HTML代码

docker run -i -t ubuntu /bin/bash

Unable to find image 'ubuntu' locally

Pulling repository ubuntu

2014/08/18 12:16:44 Get https://index.docker.io/v1/repositories/ubuntu/images: dial tcp: lookup index.docker.io on 10.143.22.118:53: no answer from server

咦。不能上网。其实就是上面的代码的问题,因为默认aliyun的eth0是内网IP,所以上述的

sudo brctl addif docker0 eth0 # mask an existing interface using the bridge

这里应该用eth1

重新执行一下。然后再次运行:

XML/HTML代码

docker run -i -t ubuntu /bin/bash

Unable to find image 'ubuntu' locally

Pulling repository ubuntu

c5881f11ded9: Download complete

。。。。。。。

整个就完成了

转载请注明原文地址:http://www.server110.com/docker/201411/11153.html

阿里云LNMP用git源码安装typecho
Putty登入阿里云,
1、用lnmp的vhost.sh创建杜哥笔记小站duuge.com,得到站点目录文件夹:/mnt/wwwroot/duuge.com
2、在putty中:cd /mnt/wwwroot/duuge.com切到杜哥笔记小站目录下;
3、执行git clone https://github.com/typecho/typecho 把源码clone回到duuge.com站点目录下;
4、加权限给git clone回来的源码:

- 阅读剩余部分 -