部署维护docker环境
1,安装环境说明 系统环境:centos6.6 服务应用了:haproxyconfdetcddocker 主机名ip 服务角色 dockerha-152 192.168.36.152haproxyconfd dockerEtcd-153192.168.36.153etcd dockermain-154192.168.36.154docker 2,安装依懒包,关闭冲突的服务 cd/etc/yum.repos.d wgethttp://www.hop5.in/yum/el6/hop5.repo 修改grub的主配置文件表示第一个title下的内容为默认启动的kernel(一般新安装的内核在第一个位置)。 然后重启,重启系统,这时候你的内核就成功升级了,版本应该在3.8以上了, uname-r [root@dockermain-154shell]# 3.10.5-3.el6.x86_64 sed-i'/^SELINUX=/c\SELINUX=disabled'/etc/selinux/config setenforce0 在FedoraEPEL源中已经提供了docker-io包,下载安装epel: rpm-ivhhttp://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm sed-i's/^mirrorlist=https/mirrorlist=http/'/etc/yum.repos.d/epel.repo 3,安装组件 (1)haproxy confd dockerha-152上操作 1、haproxy # 2、confd #wgethttps://github.com/kelseyhightower/confd/releases/download/v0.6.3/confd-0.6.3-linux-amd64 #mvconfd/usr/local/bin/confd #chmod+x/usr/local/bin/confd #/usr/local/bin/confd-version (2)etcd dockerEtcd-153上操作 #mkdir-p/home/install&&cd/home/install #wgethttps://github.com/coreos/etcd/releases/download/v0.4.6/etcd-v0.4.6-linux-amd64.tar.gz #tar-zxvfetcd-v0.4.6-linux-amd64.tar.gz #cdetcd-v0.4.6-linux-amd64 #cpetcd*/bin/ #/bin/etcd-version etcdversion0.4.6 (3)docker #yum-yinstalldocker-io #servicedockerstart #chkconfigdockeron 4,docker命令使用 (1)查看帮助 dockerCOMMAND--help (2)搜索可用的境像 dockersearchname如示例:[root@dockermain-154src]#dockersearchcentos NAMEDESCRIPTIONSTARSOFFICIALAUTOMATED centosTheofficialbuildofCentOS.817[OK] ansible/centos7-ansibleAnsibleonCentos730[OK] tutum/centosCentosimagewithSSHaccess.Fortheroot...13[OK] jdeathe/centos-ssh-apache-phpCentOS-66.5x86_64/Apache/PHP/PHPm...8[OK] blalor/centosBare-bonesbaseCentOS6.5image8[OK] jprjr/centos-php-fpm6[OK] steeef/graphite-centosCentOS6.xwithGraphiteandCarbonviang...6[OK] tutum/centos-6.4DEPRECATED.Usetutum/centos:6.4instead....5[OK] layerworx/centosAgeneralCentOS6imagewiththeEPEL6an...2[OK] jr42/chef-solo-centosOfficialCentOSbaseimageswithcurrentc...1[OK] million12/centos-supervisorBaseCentOS-7withsupervisordlauncher,h...1[OK] internavenue/centos-perconaCentos-basedPerconaimage.1[OK] jdeathe/centos-sshCentOS-66.5x86_64/EPELRepo./OpenSSH...1[OK] jdeathe/centos-ssh-mysqlCentOS-66.5x86_64/MySQL.Imageinclude...1[OK] yajo/centos-epelCentOSwithEPELandfullyupdated1[OK] nimmis/java-centosThisisdockerimagesofCentOS7withdif...0[OK] lighthopper/orientdb-centosADockerfileforcreatinganOrientDBimag...0[OK] bbrietzke/centos-starterCentOS7withEPELandSupervisorD0[OK] tcnksm/centos-nodeDockerfileforCentOSpackagingnode0[OK] insaneworks/centosCentOS6.5x86_64+@update0[OK] snowyday/centosProvideforemacsandRictyfontonX11en...0[OK] dmglab/centosCentOSwithsuperpowers!0[OK] akroh/centosCentos6containerthathasbeenupdatedw...0[OK] timhughes/centosCentoswithsystemdinstalledandrunning0[OK] solict/provisionous-puppet-centosCentOSprovisionswithPuppetincluded0[OK] (3)下载镜像 注意镜像名称要写全,就是用docker search name 搜出来的NAME列的名称。 dockerpullname 如示例:[root@dockermain-154src]#dockerpulljdeathe/centos-ssh-apache-php Pullingrepositoryjdeathe/centos-ssh-apache-php ........ 62203f428b1f:Downloadcomplete e1812755a4ca:Downloadcomplete 0910edda3736:Downloadcomplete Status:Downloadednewerimageforjdeathe/centos-ssh-apache-php:latest (4)查看已安装的镜像 [root@dockermain-154src]#dockerimages REPOSITORYTAGIMAGEIDCREATEDVIRTUALSIZE centoslatestdade6cb4530a10daysago210.1MB jdeathe/centos-ssh-apache-phplatestf1a489312a4a3monthsago297.7MB (5)docker容器中运行命令 dockerrun命令有两个参数,一个是镜像名,一个是要在镜像中运行的命令。注意:IMAGE=REPOSITORY[:TAG],如果IMAGE参数不指定镜像的TAG,默认TAG为latest。[root@dockermain-154run]#sudodockerrunjdeathe/centos-ssh-apache-phpecho'helloworld!' helloworld![root@dockermain-154run]#sudodockerrunjdeathe/centos-ssh-apache-phphostname db7e1d2269fb (6)列出容器 查看最近生成的容器:dockerps-l 查看正在运行的容器:dockerps[root@dockermain-154run]#dockerps-l CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES db7e1d2269fbjdeathe/centos-ssh-apache-php:latest"hostname"27secondsagoExited(0)26secondsagoadoring_babbage (7)显示容器标准输出 [root@dockermain-154run]#dockerps-l CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES db7e1d2269fbjdeathe/centos-ssh-apache-php:latest"hostname"27secondsagoExited(0)26secondsagoadoring_babbage [root@dockermain-154run]#dockerlogsdb7e1d2269fb db7e1d2269fb (8)给容器中安装程序或服务 [root@dockermain-154run]#sudodockerruncentosyuminstall-yhttpd Loadedplugins:fastestmirror .......... DependencyInstalled: apr.x86_640:1.4.8-3.el7 apr-util.x86_640:1.5.2-6.el7 centos-logos.noarch0:70.0.6-1.el7.centos httpd-tools.x86_640:2.4.6-19.el7.centos mailcap.noarch0:2.1.41-2.el7 Failed: httpd.x86_640:2.4.6-19.el7.centos Complete! (9)保存对容器中的修改并生成新的镜像 dockercommitCONTAINERID[REPOSITORY[:TAG]] REPOSITORY参数可以是新的镜像名字,也可以是旧的镜像名;如果和旧的镜像名和TAG都相同,会覆盖掉旧的镜像。[root@dockermain-154~]#dockercommitbd7cc4f4ac92centos:httpd 1e0915f3247b86414ebc11fd994fc6abfb590ff3b1ab890949c845ee88b2d9f4[root@dockermain-154~]#dockerimages REPOSITORYTAGIMAGEIDCREATEDVIRTUALSIZE centoshttpd1e0915f3247b9secondsago320.8MB centoslatestdade6cb4530a10daysago210.1MB jdeathe/centos-ssh-apache-phplatestf1a489312a4a3monthsago297.7MB (10)停止正在运行的容器 (11)查看容器或镜像详情 下面是我刚保存提交产生的新的容器[root@dockermain-154~]#dockerinspect943e45b6e5f3[{"AppArmorProfile":"","Args":[],"Config":{"AttachStderr":true,"AttachStdin":true,"AttachStdout":true,"Cmd":["/bin/bash"],"CpuShares":0,"Cpuset":"","Domainname":"","Entrypoint":null,"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"ExposedPorts":null,"Hostname":"943e45b6e5f3","Image":"centos:httpd","MacAddress":"","Memory":0,"MemorySwap":0,"NetworkDisabled":false,"OnBuild":null,"OpenStdin":true,"PortSpecs":null,"StdinOnce":true,"Tty":true,"User":"","Volumes":null,"WorkingDir":""}, (12)删除容器 dockerrmCONTAINERID 查看所有容器ID:dockerps-a-q 删除所有的容器:dockerrm$(dockerps-a-q) (13)删除镜像 dockerrmiIMAGE (14)查看docker的信息,包括Containers和Images数目、kernel版本等 [root@dockermain-154~]#dockerinfo Containers:14 Images:56 StorageDriver:aufs RootDir:/var/lib/docker/aufs Dirs:89 ExecutionDriver:native-0.2 KernelVersion:3.10.5-3.el6.x86_64 OperatingSystem:<unknown> CPUs:1 TotalMemory:989.6MiB Name:dockermain-154 ID:W4PW:W3XR:FQZE:SBAA:2DS2:BM6N:DV5B:ARF2:3SZM:XGST:5ZF7:DFZV WARNING:Noswaplimitsupport (15)创建容器,并像平常ssh登录一样使用 [root@dockermain-154~]#dockerrun-i-tcentos/bin/bash[root@7c0414d03fe7/]#ls bindevetchomeliblib64lost+foundmediamntoptprocrootrunsbinselinuxsrvsystmpusrvar 本文转自 chengxuyonghu 51CTO博客,原文链接:http://blog.51cto.com/6226001001/1896112,如需转载请自行联系原作者