Docker nginx+php+memcache安装遇到的几个小问题

首先记录下安装步骤,然后介绍遇到的问题及解决办法

1.    Docker安装

 yum install docker

安装完成后,使用下面的命令来启动docker 服务,并将其设置为开机启动:

# service docker start

# chkconfig docker on

2.    Load生产环境的docker镜像

 docker load -i a.tar

进入计划安装镜像的目录,然后执行docker load命令,其中a.tar是所在业务的安装镜像tar包

3.    配置文件代码同步

 直接用rsync命令同步到放置配置文件的目录

4.    启动容器

docker run -v /mnt/data1:/data1 -v /mnt/data1/vhost/:/usr/local/etc/vhost-v /mnt/data1/fpm.d:/usr/local/etc/fpm.d  -d --net=host --name=nginx registry.XXX.image:1.6.3/usr/local/sbin/nginx -g 'daemon off;' 

docker run -v/mnt/data1:/data1 -v /mnt/data1/vhost/:/usr/local/etc/vhost -v /mnt/data1/fpm.d:/usr/local/etc/fpm.d-v /mnt/data1/fpm.d/php.ini:/usr/local/lib/php.ini -d --net=host --name=php registry.XXX.image:1.6.3/usr/local/sbin/php-fpm -F 

docker run -d--net=host --name=memcached registry.XXX.image:1.6.3/usr/local/bin/memcached -u www -m 4096 -l 127.0.0.1 -p 6666 -c 20000

 上面的docker run命令详解在此不详述,主要是将宿主机的目录跟容器中的工作目录关联起来,所以要根据自己实际安装的宿主机路径进行命令修改,name是容器的名字

可以使用下面的命令查询容器的启动情况,可能会由于路径权限或文件权限等启动失败。使用 docker rm -f 容器id 命令将错误的容器删除,然后修改启动容器命令重新尝试启动。

 docker ps -a

5.    修改防火墙设置

容器启动后,访问服务内容,访问受限,原因是防火墙没有打开,通过下面的命令查询出被reject的INPUT和FORWORD链编号,然后将被reject的编号删除掉

iptables -L INPUT --line-numbers列出指定的链的规则的编号来

iptables -L FORWARD --line-numbers

删除链中被reject的规则: 

iptables -D INPUT 编号

iptables -D FORWARD 编号


遇到的问题:

1. 磁盘分区空间不足

由于默认的主分区/dev/vda1空间不足,需要手动创建一个新的分区,并挂载到一个目录下,然后在此目录下完成第2、3步,下面叙述一下创建分区及挂载等步骤

fdisk  /dev/vda  进入分区

输入n 创建新分区

输入p表示创建的主分区

一路默认回车

输入p表示将磁盘剩余空间都分到这个新分区

输入w存储分区信息

执行 partprobe 使得新建的分区生效

执行 fdisk -l  命令查看分区状态,确认分区是否创建成功

格式化分区:mkfs.ext3 /dev/vda2

挂载分区:mount /dev/vda2 /

执行df -lh 确认挂载是否成功

2. 重复挂载了根目录 / ,导致docker启动失败


Error getting authority :Error initializing authority:Could not connect :no such file or directory (go -io -error-quark ,1)

原因:误操作,重复挂载了根目录

解决办法:umount 根目录,恢复默认根目录挂载

umount  -v /

3. 机器空间很快被docker占满,速度拖垮

原因:docker安装后,默认的镜像安装空间是/var/lib/docker,第一分区/dev/vda1本来就小,docker默认给镜像安装目录的虚拟空间配额又特别大

解决办法:修改docker的镜像安装路径

在新的磁盘分区挂载目录下创建目录,例如/mnt/docker ,在/var/lib下创建软链接,链接到/mnt/docker

ln -s /mnt/docker docker   注意:要在/var/lib下执行


参考blog:

1. 创建分区 http://linux008.blog.51cto.com/2837805/548711




评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值