Notice: Constant WP_DEBUG already defined in /var/www/html/wordpress/wp-content/plugins/changyan/sohuchangyan.php on line 12

Notice: Constant WP_DEBUG_LOG already defined in /var/www/html/wordpress/wp-content/plugins/changyan/sohuchangyan.php on line 13

Notice: Constant WP_DEBUG_DISPLAY already defined in /var/www/html/wordpress/wp-content/plugins/changyan/sohuchangyan.php on line 14
[128]【zoues.com】 – zoues

LOADING

Follow me

[128]【zoues.com】
五月 1, 2017|DockerPaaS

[128]【zoues.com】

[128]【zoues.com】

我一年前在公号里发了三篇关于docker的文章

[120] docker读书笔记

[121] 新技术的学习

[123] 项目迁移到docker环境

一年来,docket日新月异,更新很快,而最近一直使用docker部署应用,下面是我自己的笔记,环境为ubuntu 14.04 64位,Linux内核不低于3.10,使用日本的vultr云主机配置,发出来分享一下,欢迎大家留言交流,



本文主要内容:

1、docker宿主机快速安装部署

2、docker常见进程操作

3、docker启动参数设定

4、docker启动调试宿主机的toolbox容器



一、docker宿主机快速安装部署


首先通过下面命令检查环境

uname -a

确保系统为64位,内核高于3.10


下面是mint 17.3/ubuntu14.4安装命令:

确保系统安装了curl包,然后使用官方一键安装包

apt-get install -y curl

curl -sSL https://get.docker.com/ | sh


主机在国内安装命令

curl -sSL https://get.daocloud.io/docker | sh


安装后把当前账号添加docker 组里,这里添加root到docker组

usermod -aG docker root 


如果需要用到安装PPTP应用等GRE等数据,可以降低版本使用,因为我在高版本下使用GRE数据通不过,谁有解决办法欢迎告知:)

apt-get -y purge docker-engine

apt-cache policy docker-engine  

apt-get install  -y docker-engine=1.12.6-0~ubuntu-trusty


查看当前版本信息(非必要

docker info

如果出现

WARNING: No swap limit support

WARNING: No memory limit support

可以修改/etc/default/grub 

GRUB_CMDLINE_LINUX=”cgroup_enable=memory swapaccount=1″

然后update-grub 重启电脑,可以解决

安装时如果出现故障,可以通过https://github.com/docker/docker/blob/master/contrib/check-config.sh 

查看错误在哪里,操作命令如下:


wget https://github.com/docker/docker/raw/master/contrib/check-config.sh

chmod +x check-config.sh

./check-config.sh



二、docker进程常见操作


启动和运行hell-world容器

service docker start

docker run hello-world


停止 Docker 服务

service docker stop


升级docker

apt-get upgrade docker-engine


删除docker程序

apt-get autoremove –purge docker-engine

rm -rf /var/lib/docker


下载ubuntu 镜像

docker pull ubuntu


需要迁移,先导出tar文件,然后迁移到别的主机 ,然后导入成镜像,再运行容器

docker export toolbox >toolbox.tar

cat toolbox.tar | docker import  – toolbox

docker run -it –privileged –name toolbox –pid=host –net=host toolbox /bin/bash


查看资料:

我发现官方的文档非常详细 

https://docs.docker.com/engine/quickstart/

Docker –从入门到实践电书:

https://www.gitbook.com/book/yeasy/docker_practice




三、docker启动参数设定


如果你需要远程调用访问docker宿主机,或者修改docker 容器分配的dns,调整docker默认存储目录,以及容器IP网段分配,下面是我的操作,


生成安全连接证书

docker run –rm -v $(pwd)/.docker:/certs ehazlett/certm -d /certs bundle generate -o=local –host localhost –host 127.0.0.1 –host <ip> —host foo.local

上面-o 是组织名称,host 为主机IP,可以使用IP或者域名,可以指定多个


修改证书文件权限

cd .docker

chmod -v 0444 ca.pem server.pem cert.pem

chmod -v 0400 ca-key.pem key.pem server-key.pem


运行apt-get install lrzsz 通过xshell把证书传到本地,方便portainer配置,关于部署docker网页管理操作方法,我会后续把相关文档分享出来。


修改启动选项

Ubuntu docker配置文件是 /etc/default/docker,下面内容是我自己经常要修改的,例如如果服务器在国外,我会修改容器dns为goolge公共dns,如果配置docker管理界面给客户用,我会修改分配IP的网段大小,确保客户不会克隆容器时不会太多,导致宿主机资料耗尽而假死,如果宿主机存放在国内,我会修改代理代理,确保能正常访问hub.docker.com下载镜像


cat /etc/default/docker

#可以修改分配的容器的dns和网段,网段IP数可以用来限制容器数,label用于标记这台宿主机名称,这个在集群里会用到

DOCKER_OPTS=”–dns 8.8.8.8 –dns 8.8.4.4 –label name=bj3 –fixed-cidr=172.17.55.0/26″

#

#可以配置使用http代理下载镜像

export http_proxy=”http://10.101.0.2:8123/”

export https_proxy=”http://10.101.0.2:8123/”

#

#修改docker 监听tcp端口,这样可以远程调用,指定安全证书,确保通信安全

DOCKER_OPTS=”–tlsverify -H=unix:///var/run/docker.sock -H=0.0.0.0:2376 –tlscacert=/root/.docker/ca.pem –tlscert=/root/.docker/server.pem –tlskey=/root/.docker/server-key.pem”

特别注意:启动文件DOCKER_OPTS只能含一个,所以根据自己的要求集合成一条


关于数据存储分区,这里分享一下,我在这方面踩过炕,


方法一:软链接法,将原来默认的/var/lib/docker备份一下,然后复制到别的位置并建立一个软链接,这里假设修改docker存放目录反正/home/docker下:


cd /var/lib

cp -rf docker /home/

cp -rf docker docker.bak

rm -rf docker

ln -s /home/docker docker  


方法二:添加启动参数


DOCKER_OPTS=” -g /home/docker”


建议使用方法二添加启动参数法,这是因为我用过方法一,数据迁移发现有些容器里的服务运行不了,应该是迁移到不同目录出现的权限问题,故建议在规划的时候通过 df -h  查看磁盘空间,在还没部署容器时就使用参数修改默认存储目录,然后重启启动 Docker 服务,使修改生效:

service docker start



四:docker启动调试宿主机的toolbox容器


为了方便通过容器远程调试宿主机,我一般在宿主机上启动一个toolbox容器,下面是我的命令,大家可以参考:

docker run -d -it –restart=always –privileged –network=host –pid=host –name toolbox lihaixin/toolbox

下集预告:国内linux docker宿主机代理配置


no comments
Share