Submitted by gouki on 2014, August 18, 1:39 PM
因为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'
老规矩,内事不决问度娘,外事不决问谷歌,结果居然看到有人回复 :

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

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
- 。。。。。。。
整个就完成了
Tags: docker, aliyun
苹果相关 | 评论:1
| 阅读:26830
Submitted by gouki on 2014, August 9, 11:09 PM
不得不承认,到现在为止还有很多服务器在用旧的ubuntu版本,比如我在buyvm上的服务器,现在还是11.04的版本,在执行apt-get update的时候,不是IGN就是404。
这是因为,ubuntu已经不再维护这些源了,那么我们仍然在使用的怎么办?改一下吧:
XML/HTML代码
- deb http://old-releases.ubuntu.com/ubuntu/ natty main restricted universe multiverse
- deb http://old-releases.ubuntu.com/ubuntu/ natty-security main restricted universe multiverse
- deb http://old-releases.ubuntu.com/ubuntu/ natty-updates main restricted universe multiverse
- deb http://old-releases.ubuntu.com/ubuntu/ natty-proposed main restricted universe multiverse
- deb http://old-releases.ubuntu.com/ubuntu/ natty-backports main restricted universe multiverse
- deb-src http://old-releases.ubuntu.com/ubuntu/ natty main restricted universe multiverse
- deb-src http://old-releases.ubuntu.com/ubuntu/ natty-security main restricted universe multiverse
- deb-src http://old-releases.ubuntu.com/ubuntu/ natty-updates main restricted universe multiverse
- deb-src http://old-releases.ubuntu.com/ubuntu/ natty-proposed main restricted universe multiverse
- deb-src http://old-releases.ubuntu.com/ubuntu/ natty-backports main restricted universe multiverse
其实这挺让人痛苦的。。。ubuntu的更新又是这么频繁 。。
参考:http://askubuntu.com/questions/345000/updating-ubuntu-server-apt-get-gives-me-404-not-found
Tags: ubuntu, sourcelist
苹果相关 | 评论:0
| 阅读:20118
Submitted by gouki on 2014, July 18, 10:38 AM
本来以为安装gogs是一件很轻松的事情不料发生了N多周折,一一记录下来
1、到官网下载二进制包:http://gogs.io/,具体页面请自己找
2、到aliyun上解压,然后到包里运行start.sh
问题就这样来了。。。
开始我没有下载二进制包,我下载的最新的版本,运行后提示:只有官方的二进制包才内置支持sqlite3。由于我不想装mysql所以。所以只能下载二进制包
1、运行后,提示我开放了端口3000,然后通过网页访问 ,最后提交的时候出错了,说是不能在root用户下运行:
XML/HTML代码
- Run user isn't the current user: git -> root
2、创建一个新用户,git ....
XML/HTML代码
- adduser --disabled-login --gecos 'GitLab' git
3、使用sudo运行:
XML/HTML代码
- sudo -u git ./start.sh
提示:
XML/HTML代码
- 2014/07/18 09:37:43 [FATAL][github.com/gogits/gogs/models] publickey.go:72: publickey.init(fail to create sshPath(/root/.ssh)): mkdir /root/.ssh: permission denied
咦,怎么在/root下?好纠结
切换 到了git 用户下。再运行提示:
XML/HTML代码
- 2014/07/18 09:43:03 [log.go:76] [E] Fail to parse 'conf/app.ini': open /tmp/goconfig/867736331: permission denied
好吧。刚才是先用类似 root权限运行的。所以。。再次切换回root删除了刚才的目录,再su回来,重新运行。一切正常,然后在网页里输入信息,保存
又提示:
XML/HTML代码
- [martini] Started POST /install
- [martini] PANIC: runtime error: invalid memory address or nil pointer dereference
- /usr/local/src/go/src/pkg/runtime/panic.c:482 (0x48dffd)
崩溃了,这肿么办?
干脆点,直接运行:gogs web,这回是WEB页提示了:
XML/HTML代码
- Fail to save configuration: open /alidata1/software/gogits/gogs/custom/conf/app.ini: no such file or directory
于是手动创建目录 、文件,并chown权限为git。于是全解决了。
然后再回想一样,刚才的start.sh,是不是也是因为权限问题?果然再次就没有这个问题了。
----
回想整个过程,一切都是因为权限的原因,果然还是要细致才OK啊
苹果相关 | 评论:2
| 阅读:26013
Submitted by gouki on 2014, July 12, 8:06 PM
在写shell脚本的时候,还是有些注意事项的,比如。。空格,给变量赋值不能有空格,象a=1就不能写成a = 1,刚开始的时候好纠结。。
写判断语句的时候[]之间一定要有空格。以下是一些常见的判断:
参考:http://www.cnblogs.com/emanlee/p/3583769.html
- #如果文件夹不存在,创建文件夹
- if [ ! -d "/myfolder" ]; then
- mkdir /myfolder
- fi
-
- #shell判断文件,目录是否存在或者具有权限
-
-
- folder="/var/www/"
- file="/var/www/log"
-
- # -x 参数判断 $folder 是否存在并且是否具有可执行权限
- if [ ! -x "$folder"]; then
- mkdir "$folder"
- fi
-
- # -d 参数判断 $folder 是否存在
- if [ ! -d "$folder"]; then
- mkdir "$folder"
- fi
-
- # -f 参数判断 $file 是否存在
- if [ ! -f "$file" ]; then
- touch "$file"
- fi
-
- # -n 判断一个变量是否有值
- if [ ! -n "$var" ]; then
- echo "$var is empty"
- exit 0
- fi
-
- # 判断两个变量是否相等
- if [ "$var1" = "$var2" ]; then
- echo '$var1 eq $var2'
- else
- echo '$var1 not eq $var2'
- fi
苹果相关 | 评论:1
| 阅读:22883
Submitted by gouki on 2014, July 5, 12:00 AM
标题其实没什么,主要原因是。我在两台机器上部署了同样的程序,一个访问的时候一直显示404,一个就一直正常。死活找不到原因
1、背景
两台服务器,都是CentOS,一个可以公网访问,一个只能内网访问,因此一个可以在浏览器里打开,一个只能用命令行访问,习惯性的,我使用了wget
2、浏览器访问正常,命令行显示404
3、配置完全一样,问题不明。
wget的时候显示404,无输出。。也就导致没有任何文件信息被下载
4、使用的YII框架。结果,记录的LOG,分组了只记录了system.db,404的LOG未被记录
5、调整策略:
a.用curl(有朋友建议)
b.把LOG改为全部记录
于是就发现问题了。LOG里显示无默认控制器。CURL直接输出错误信息
原来,WGET看到http头是404后就不再下载内容,即使我有在文件里有输出,而CURL默认就是按浏览器访问的显示而正常输出在屏幕上。
问题解决。记录一下。就因为WGET和CURL的默认机制不一样。吐血三升
苹果相关 | 评论:1
| 阅读:21589