胆囊息肉

注册

 

发新话题 回复该主题

收藏Docker从入门到精通 [复制链接]

1#
白癜风怎样快速治疗 http://news.39.net/bjzkhbzy/180620/6341411.html

方式二:知识星球下载,获取更多资料。

Docker实战文档(Part1)

Docker实战文档(Part2)

Kubernetes基础介绍

Docker容器基础介绍

本号资料全部上传至知识星球,加入全栈云技术知识星球下载全部资料。

1容器简介1.1什么是Linux容器1.2容器不就是虚拟化吗1.3容器发展简史2什么是Docker?2.1Docker如何工作?2.2Docker技术是否与传统的Linux容器相同?2.3docker的目标3安装Docker3.1Docker基础命令操作3.2启动第一个容器3.3Docker镜像生命周期4docker镜像相关操作4.1搜索官方仓库镜像4.2获取镜像4.3导出镜像4.4删除镜像4.5导入镜像4.6查看镜像的详细信息5容器的日常管理5.1容器的起/停5.2进入容器方法5.3删除所有容器5.4启动时进行端口映射6Docker数据卷的管理6.1挂载时创建卷6.2创建卷后挂载6.3手动将容器保存为镜像7Dockerfile自动构建docker镜像7.1Dockerfile指令集7.2创建一个Dockerfile7.3使用Dcokerfile安装kodexplorer8Docker中的镜像分层8.1Docker镜像为什么分层8.2可写的容器层8.3容器层的细节说明9使用docker运行zabbix-server9.1容器间的互联9.2启动zabbix容器9.3关于zabbixAPI10docker仓库(registry)10.1创建一个普通仓库10.2带basic认证的仓库11docker-
  #启动方法:docker-
  #后台启动方法:docker--d

4、浏览器上访问http://10.0.0.

进行wordpress的安装即可

11.3haproxy代理后端docker容器

1、修改编排脚本

[root

docker01my_wordpress]#catdocker-compose.ymlversion:3servicesb:image:mysql:5.7volumes:-/data/db_data:/var/lib/mysqlrestart:alwaysenvironment:MYSQL_ROOT_PASSWORD:somewordpressMYSQL_DATABASE:wordpressMYSQL_USER:wordpressMYSQL_PASSWORD:wordpresswordpressepends_on:-dbimage:wordpress:latestvolumes:-/data/web_data:/var/www/htmlports:-"80"restart:alwaysenvironment:WORDPRESS_DB_HOSTb:WORDPRESS_DB_USER:wordpressWORDPRESS_DB_PASSWORD:wordpress

2、同时启动两台wordpress

[root

docker01my_wordpress]#docker-composescalewordpress=2WARNINGhescalecommandisdeprecated.Usetheupcommandwiththe--scaleflaginstead.Startingmywordpress_wordpress_1...doneCreatingmywordpress_wordpress_2...done

3、安装haproxy

[root

docker01~]#yuminstallhaproxy-y

4、修改haproxy配置文件

关于配置文件的详细说明,参考:https://www.cnblogs.com/MacoLee/p/.html

[root

docker01~]#cp/etc/haproxy/haproxy.cfg{,.bak}[root

docker01~]#vim/etc/haproxy/haproxy.cfggloballog.0.0.1local2chroot/var/lib/haproxypidfile/var/run/haproxy.pidmaxconn4userhaproxygrouphaproxydaemonstatssocket/var/lib/haproxy/statsleveladmin#支持命令行控制defaultsmodehttplogglobaloptionhttplogoptiondontlognulloptionhttp-server-closeoptionforwardforexcept.0.0.0/8optionredispatchretries3timeouthttp-request10stimeoutqueue1mtimeoutconnect10stimeoutclient1mtimeoutserver1mtimeouthttp-keep-alive10stimeoutcheck10smaxconn3listenstatsmodehttpbind0.0.0.0:statsenablestatsuri/haproxy-statusstatsauthadminrontendfrontend_www_example_combind10.0.0.modehttpoptionhttploglogglobaldefault_backendbackend_www_example_combackendbackend_www_example_comoptionforwardforheaderX-REAL-IPoptionhttpchkHEAD/HTTP/1.0balanceroundrobinserverweb-node.0.0.:68checkinterrise30fall15serverweb-node.0.0.:69checkinterrise30fall15

5、启动haproxy

systemctlstarthaproxysystemctlenablehaproxy

6、使用浏览器访问hapeoxy监听的8端口可以看到负载的情况

7、使用浏览器访问http://10.0.0.:/haproxy-status

可以看到后端节点的监控状况,

11.4安装socat直接操作socket控制haproxy

1、安装软件

yuminstallsocat.x86_64-y

2、查看帮助

[root

docker01web_data]#echo"help"

socatstdio/var/lib/haproxy/stats

3、下线后端节点

echo"disableserverbackend_www_example_com/web-node2"

socatstdio/var/lib/haproxy/stats

4、上线后端节点

echo"enableserverbackend_www_example_com/web-node3"

socatstdio/var/lib/haproxy/stats

5、编写php测试页,放到/data/web_data下,在浏览器中访问可以查看当前的节点

[root

docker01web_data]#vimcheck.phphtmlheadtitlePHP测试/title/headbody?phpechopHelloWorld/p;??phpecho"访问的服务器地址是:"."fontcolor=red".$_SERVER[SERVER_ADDR]."/font"."br";echo"访问的服务器域名是:"."fontcolor=red".$_SERVER[SERVER_NAME]."/font"."br";?/body/html

12重启docker服务,容器全部退出的解决办法

12.1在启动是指定自动重启

dockerrun--restart=always

12.2修改docker默认配置文件

#添加上下面这行"live-restore":true

dockerserver配置文件/etc/docker/daemon.json参考

[root

docker02~]#cat/etc/docker/daemon.json{"registry-mirrors":["https://registry.docker-cn.com"],"graph":"/opt/mydocker",#修改数据的存放目录到/opt/mydocker/,原/var/lib/docker/"insecure-registries":["10.0.0.:5"],"live-restore":true}

重启生效,只对在此之后启动的容器生效

[root

docker01~]#systemctlrestartdocker.service

13Docker网络类型

13.1docker的网络类型

Bridge默认docker网络隔离基于网络命名空间,在物理机上创建docker容器时会为每一个docker容器分配网络命名空间,并且把容器IP桥接到物理机的虚拟网桥上。

13.2不为容器配置网络功能

此模式下创建容器是不会为容器配置任何网络参数的,如:容器网卡、IP、通信路由等,全部需要自己去配置。

[root

docker01~]#dockerrun-it--networknonebusybox:latest/bin/sh/#ipa1:loOOPBACK,UP,LOWER_UPmtuqdiscnoqueuelink/loopback00:00:00:00:00:00brd00:00:00:00:00:00inet.0.0.1/8scopehostlovalid_lftforeverpreferred_lftforever

13.3与其他容器共享网络配置(Container)

此模式和host模式很类似,只是此模式创建容器共享的是其他容器的IP和端口而不是物理机,此模式容器自身是不会配置网络和端口,创建此模式容器进去后,你会发现里边的IP是你所指定的那个容器IP并且端口也是共享的,而且其它还是互相隔离的,如进程等。

[root

docker01~]#dockerrun-it--networkcontainer:mywordpress_db_1busybox:latest/bin/sh/#ipa1:loOOPBACK,UP,LOWER_UPmtuqdiscnoqueuelink/loopback00:00:00:00:00:00brd00:00:00:00:00:00inet.0.0.1/8scopehostlovalid_lftforeverpreferred_lftforever:eth0

if:BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWNmtuqdiscnoqueuelink/ether02:42:ac:12:00:03brdffffff:ffinet.18.0.3/16brd.18..scopeglobaleth0valid_lftforeverpreferred_lftforever

13.4使用宿主机网络

此模式创建的容器没有自己独立的网络命名空间,是和物理机共享一个NetworkNamespace,并且共享物理机的所有端口与IP,并且这个模式认为是不安全的。

[root

docker01~]#dockerrun-it--networkhostbusybox:latest/bin/sh

13.5查看网络列表

[root

docker01~]#dockernetworklistNETWORKIDNAMEDRIVERSCOPEb15e8ad3bbridgebridgelocald65b4c2a0hosthostlocalbc5e2a32bb55mywordpress_defaultbridgelocalebf76eea91bbnonenulllocal

13.6用PIPEWORK为docker容器配置独立IP

参考文档:http://blog.csdn.net/design/article/details/

官方网站:https://github.com/jpetazzo/pipework

宿主环境:centos7.2

1、安装pipework

wgethttps://github.com/jpetazzo/pipework/archive/master.zipunzipmaster.zipcppipework-master/pipework/usr/local/bin/chmod+x/usr/local/bin/pipework

2、配置桥接网卡

安装桥接工具

yuminstallbridge-utils.x86_64-y

修改网卡配置,实现桥接

#修改eth0配置,让br0实现桥接[root

docker01~]#cat/etc/sysconfig/network-scripts/ifcfg-eth0TYPE=EthernetBOOTPROTO=staticNAME=eth0DEVICE=eth0ONBOOT=yesBRIDGE=br0[root

docker01~]#cat/etc/sysconfig/network-scripts/ifcfg-br0TYPE=BridgeBOOTPROTO=staticNAME=br0DEVICE=br0ONBOOT=yesIPADDR=10.0.0.NETMASK=...0GATEWAY=10.0.0.DNS1=.5.5.5#重启网络[root

docker01~]#/etc/init.d/networkrestart

3、运行一个容器镜像测试:

pipeworkbr0$(dockerrun-d-it-p0--namehttpd_pwhttpd)10.0.0./24

10.0.0.

在其他主机上测试端口及连通性

[root

docker01~]#curl10.0.0.htmlbodyh1Itworks!/h1/body/html[root

docker01~]#ping10.0.0.-c1PING10.0.0.(10.0.0.)56(84)bytesofdata.64bytesfrom10.0.0.:icmp_seq=1ttl=64time=0.ms

4、再运行一个容器,设置网路类型为none:

pipeworkbr0$(dockerrun-d-it--net=none--nametesthttpd:2.4)10.0.0./24

10.0.0.

进行访问测试

[root

docker01~]#curl10.0.0.htmlbodyh1Itworks!/h1/body/html

5、重启容器后需要再次指定:

pipeworkbr0testduliip.16../24

.16..1pipeworkbr0testduliip72.16../24

.16..1

Dcoker跨主机通信之overlay可以参考:

http://www.cnblogs.com/CloudMan6/p/1.html

1.13.7Docker跨主机通信之macvlan

创建网络

[root

docker01~]#dockernetworkcreate--drivermacvlan--subnet10.1.0.0/24--gateway10.1.0.-oparent=eth0macvlan_a1f41dccf91b5bd45e7dfedabfb2b8ec82dbfab62ca

设置网卡为混杂模式

iplinkseteth0promiscon

创建使用macvlan网络容器

[root

docker02~]#dockerrun-it--networkmacvlan_1--ip=10.1.0.busybox/bin/sh

14docker企业级镜像仓库harbor

容器管理

[root

docker01harbor]#pwd/opt/harbor[root

docker01harbor]#docker-composestop

1、安装docker、docker-compose

下载harbor

cd/opthttps://storage.googleapis.com/harbor-releases/harbor-offline-installer-v1.3.0.tgztarxfharbor-offline-installer-v1.3.0.tgz

2、修改主机及web界面密码

[root

docker01harbor]#vimharbor.cfg···hostname=10.0.0.harbor_admin_password=Harbor12···

3、执行安装脚本

[root

docker01harbor]#./install.sh

浏览器访问http://10.0.0.11

添加一个项目

4、镜像推送到仓库的指定项目

[root

docker02~]#dockertagcentos:6..0.0./clsn/centos6.8:1.0[root

docker02~]#[root

docker02~]#dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEbusyboxlatest5b0ddaysago1.15MB10.0.0./clsn/centos6.81.db3ba2monthsagoMBcentos6.db3ba2monthsagoMB[root

docker02~]#dockerlogin10.0.0.Username:adminPasswordoginSucceeded

5、推送镜像

[root

docker02~]#dockerpush10.0.0./clsn/centos6.8Thepushreferstorepository[10.0.0./clsn/centos6.8]e00cbushing13.53MB/.5MB

6、在web界面里查看

14.1使用容器的建议

不要以拆分方式进行应用程序发布不要创建大型镜像不要在单个容器中运行多个进程不要再镜像内保存凭证,不要依赖IP地址以非root用户运行进程不要使用“最新”标签不要利用运行中的容器创建镜像不要使用单层镜像不要将数据存放在容器内

14.2关于Docker容器的监控

容器的基本信息

包括容器的数量、ID、名称、镜像、启动命令、端口等信息

容器的运行状态

统计各状态的容器的数量,包括运行中、暂停、停止及异常退出

容器的用量信息

统计容器的CPU使用率、内存使用量、块设备I/O使用量、网络使用情况等资源的使用情况。

下载方式:

方式一:

分享 转发
TOP
发新话题 回复该主题