首先记录下安装步骤,然后介绍遇到的问题及解决办法
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下执行
1. 创建分区 http://linux008.blog.51cto.com/2837805/548711