概述 YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。...YApi源码:https://github.com/YMFE/yapi 官方提供了很简单的安装工具,但由于我的安装环境在云端,想要使用docker安装,参考使用 alpine 版 docker 镜像快速部署...admin root用户 docker exec -it mongod mongo admin >db.createUser({ user: 'admin', pwd: 'admin123456...', roles: [ { role: "root", db: "admin" } ] }); 设置yapi用户 db.auth("admin", "admin123456") db.createUser...--name yapi --net tools-net --ip 172.18.0.3 yapi --initdb 初始化后的账号为config.json 配置的邮箱, 密码为ymfe.org 直接启动
以下是无密码监控时的JMX配置参数(有密码监控的配置和常规监控无异)。...容器中这样配置的时候,会出现这个错误。...先看docker环境的网络结构。 容器使用默认的网络模型,就是bridge模式。在这种模式下是docker run时做的DNAT规则,实现数据转发的能力。...所以我们看到的网络信息是这样的: docker中的网卡信息: [root@f627e4cb0dbc /]# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,...,并不是宿主机开的端口,其他机器是访问不了的。
docker允许通过外部访问容器或容器互联的方式来提供网络服务。 外部访问容器 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过-P或-p参数来指定端口映射。...,可以使用docker compose 配置DNS 如何自定义配置容器的主机名和DNS?...设定容器的主机名,会被写到容器的/etc/hostname和/etc/hosts --dns=IP添加dns服务器到容器的/etc/resolv.conf中 高级网络配置 当docker启动时,会自动在主机上创建一个...docker0虚拟网桥,实际上是linux的一个bridge,可以理解为一个软件交换机,它会在挂载到它的网口之间进行转发,同时docker随机分配一个本地未占用的私有网段中的一个地址给docker0接口...网桥和在启动容器后起的网卡名是以veth开头的网卡被挂载到了docker0上,也可以验证容器在启动时会自动分配一个同一网段的地址。
容器的本质 容器的本质就是一个进程,只不过对它进行了Linux Namesapce隔离,让它看不到外面的世界,用Cgroups限制了它能使用的资源,同时利用系统调用pivot_root或chroot切换了进程的根目录...实际上这只不过是利用系统调用setns,让当前进程进入到容器进程的Namesapce中,它就能“看到”容器内部的情况了。 容器网络 如何让容器之间互相连接保持网络通畅,Docker有多种网络模型。...对于单机上运行的多个容器,可以使用缺省的bridge网络驱动。而容器的跨主机通信,一种常用的方式是利用Overlay 网络,基于物理网络的虚拟化网络来实现。...我们说的iptables包含了用户态的配置工具(/sbin/iptables)和内核netfilter模块,通过使用iptables命令对内核的netfilter模块做规则配置。...因为涉及到很多系统级设置,建议在一个“干净”的虚拟机内折腾,以免干扰到工作环境。我使用的实验环境是Ubuntu 18.04.1 LTS,不需要安装docker,我们使用系统命令模拟出容器网络环境。
3个新容器 3.3 初始化MGR集群 3.4 启动MGR服务 3.5 写入测试数据 4、利用Docker-compose创建Docker容器 为了方面社区用户体验GreatSQL,我们同时还提供Docker...MYSQL_ALLOW_EMPTY_PASSWORD=1 必选 无 允许root使用空密码(本案中启用该选项,为了方便),也可以指定密码,或者使用随机密码,下面介绍 -e MYSQL_IBP=1G 可选...如果不想让 root 账户使用空密码,可以把 MYSQL_ALLOW_EMPTY_PASSWORD=1 参数替换成诸如 MYSQL_ROOT_PASSWORD='GreatSQL3#)^' 或者指定随机密码...greatsql]# docker rm mgr1 如果是想销毁某个镜像,运行 docker rmi [镜像ID|镜像名] 命令即可,不过要先确保该镜像目前没有被其他容器所使用后,方可删除: [root...编辑三个容器下的 /etc/hosts 文件,加入所有节点的hostname配置: 172.18.0.2 mgr1 172.18.0.3 mgr2 172.18.0.4 mgr3 提醒:docker容器重启后
除非另有说明,否则Docker将始终在此网络中启动您的容器。...笔者的em1为:192.168.10.10 检查网络是查找容器的IP地址的简单方法 [root@aniu-k8s ~]# docker network inspect bridge [ {...为此,提供网络名称和容器名称。可以使用容器ID。在这个例子中,名字更快。...网络是将容器与其他容器或其他网络隔离的自然方式。所以,当你对Docker有更多的经验时,你会想创建自己的网络。 创建自己的bridge网络 Docker引擎本身支持桥接网络和覆盖网络。...{end}}' web 172.17.0.2 现在,打开一个shell连接到正在运行的db容器中: [root@aniu-k8s ~]# docker exec -it db bash root@
如果之前有docker的使用经验,可能已经习惯了使用–link来对容器进行互联。随着docker的逐步完善,强烈推荐大家使用网桥(bridge)来对容器进行互联。...14.04 4776b65db566f370cad5da3a9354a12c7e4f9badab53647b7e30e1e8f343ae3d [root@linuxidc docker]# docker...–name指定了容器的名称,–network指定了该容器的网络名称,桥接形式默认为网桥,-p或–publish指定了映射的端口。如果在这一步指定的网络没有预先被创建,那么这个容器时无法正常启动的。...3.还可以在运行一个docker容器的时候指定一个已经创建好的网络: [root@linuxidc docker]# docker run -it --name d2 --network my-net...3.容器的网络配置中的dns配置可以在主机的/etc/docker/daemon.json文件进行配置,参照官方格式: { "bip": "192.168.1.5/24", "fixed-cidr
haproxy用户,密码为空。...keepalive检测死链 option tcpka 3、在数据库集群中创建空密码、无权限用户haproxy,来供Haproxy对MySQL数据库进行心跳检测 # 进入容器 docker...四、访问测试 1、页面访问 ip:4001/dbs,在配置文件中定义有用户名admin,密码123456 2、数据库访问 使用navacat访问代理集群,端口为4002 3、测试docker挂掉...分别下线第一和第二个节点,通过访问其它节点或代理节点都能正常使用 五、节点宕机或重启 1、从节点宕机后的操作 如果指定的主节点没有宕机,直接启动从节点容器,数据会自动同步 2、主节点宕机后的操作 【重启用此操作...如果其他节点还在运行中,主节点挂掉了(说明主节点的数据已经不是最新的了),需要删除主节点容器,原来的数据卷无需删除(继续使用,避免数据丢失),然后再以从节点方式加入集群,注意加参数 "-e CLUSTER_JOIN
---- ip addr查看当前linux虚拟机的ip地址 此时有三个网络,docker是如何处理网络之间的访问的呢?...使用的是Linux的桥接,宿主机中是docker容器的网桥docker0 Docker中的所有的网络接口都是虚拟的,虚拟的转发效率高(内网传递文件) 只要容器删除,对应的网桥就没了 ---- Docker...--link :添加主机名和ip的映射 docker间常常需要互联或者说通信,比如后台程序访问数据库容器,一般是需要ip+端口的形式,然而ip是经常会变化的,docker中采用link来为容器起个名字...test2是不行的,原因在于link 具有方向性,即左边的可以ping 右面的名字 本质: 在test2容器的/etc/hosts文件中添加了172.18.0.3 test1 ,即将ip映射到了test1...run -d --name test --link mysql:db -p xxx:xxx test 其中mysql是指一个name为mysql的容器,db为为其指定的别名 然后在test容器中就可以使用
如果之前有docker的使用经验,可能已经习惯了使用–link来对容器进行互联。随着docker的逐步完善,强烈推荐大家使用网桥(bridge)来对容器进行互联。...:14.04 4776b65db566f370cad5da3a9354a12c7e4f9badab53647b7e30e1e8f343ae3d [root@ChatDevOps docker]# docker...–name指定了容器的名称,–network指定了该容器的网络名称,桥接形式默认为网桥,-p或–publish指定了映射的端口。如果在这一步指定的网络没有预先被创建,那么这个容器时无法正常启动的。...3.还可以在运行一个docker容器的时候指定一个已经创建好的网络: [root@ChatDevOps docker]# docker run -it --name d2 --network my-net...3.容器的网络配置中的dns配置可以在主机的/etc/docker/daemon.json文件进行配置,参照官方格式: { "bip": "192.168.1.5/24", "fixed-cidr
调整后的方案,使用Haproxy做负载均衡,请求被均匀分发到每个节点,单节点的负载低,性能好。haproxy不是数据库,只是一个转发器。 ? 负载均衡中间件对比 LVS是不知道在虚拟机环境下安装的。...haproxy用户,密码为空。...在数据库中创建一个haproxy的用户,不需要设置密码 ? 登录haproxy网页端 http://192.168.66.100:4001/dbs ? ?...网卡设备的名称。eth0是docker的虚拟网卡,宿主机是可以访问的。 virtualrouterid 51 | 虚拟路由标识,MASTER和BACKUP的虚拟路由标识必须一致。...haproxy用户,密码为空。
容器间的互联 在运行zabbix之前务必要了解容器间互联的方法 # 创建一个nginx容器 docker run -d -p 80:80 nginx # 创建容器,做link,并进入容器中 docker...(Container) 此模式和host模式很类似,只是此模式创建容器共享的是其他容器的IP和端口而不是物理机,此模式容器自身是不会配置网络和端口,创建此模式容器进去后,你会发现里边的IP是你所指定的那个容器...使用容器的建议 1. 不要以拆分方式进行应用程序发布 2. 不要创建大型镜像 3. 不要在单个容器中运行多个进程 4. 不要再镜像内保存凭证,不要依赖IP地址 5. 以非root用户运行进程 6....不要使用“最新”标签 7. 不要利用运行中的容器创建镜像 8. 不要使用单层镜像 9....不要将数据存放在容器内 关于Docker容器的监控 容器的基本信息 包括容器的数量、ID、名称、镜像、启动命令、端口等信息 容器的运行状态 统计各状态的容器的数量,包括运行中、暂停、停止及异常退出 容器的用量信息
容器间的互联 在运行zabbix之前务必要了解容器间互联的方法 # 创建一个nginx容器 docker run -d -p 80:80 nginx # 创建容器,做link,并进入容器中 docker...:web busybox:latest /bin/sh / # # 使用新的容器访问最初的web容器 / # ping web PING web (172.17.0.2): 56 data bytes...(Container) 此模式和host模式很类似,只是此模式创建容器共享的是其他容器的IP和端口而不是物理机,此模式容器自身是不会配置网络和端口,创建此模式容器进去后,你会发现里边的IP是你所指定的那个容器...不要在单个容器中运行多个进程 4. 不要再镜像内保存凭证,不要依赖IP地址 5. 以非root用户运行进程 6. 不要使用“最新”标签 7. 不要利用运行中的容器创建镜像 8....不要将数据存放在容器内 关于Docker容器的监控 容器的基本信息 包括容器的数量、ID、名称、镜像、启动命令、端口等信息 容器的运行状态 统计各状态的容器的数量,包括运行中、暂停、停止及异常退出
一、端口映射 在启动容器的时候,如果不指定对应的参数,在容器外部是无法通过网络来访问容器内部的网络应用和服务的。 ...当容器中运行一些网络应用,要让外部访问这些应用时,可以通过-p或-P参数来指定端口映射。...容器中管理数据主要有两种方式: 数据卷:挂载宿主系统的存储空间 数据卷容器:挂载容器的存储空间 如果用户需要在容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器,数据卷容器其实是一个普通的容器...默认网络中的link是静态的,不允许链接容器重启,而自定义网络下的link是动态的,支持链接容器重启(以及IP变化) 因此,使用–link时链接的容器,在默认网络中必须提前创建好,而自定义网络下不必预先建好...(网络别名的作用类似hostname,不管容器IP如何变化,都可以使用同一个别名。
网络安全和通信. 1.给自己的docker (Dcoker1.12GA)容器起个名称 给docker名称的好处是: - 容易记 - 可以通过特殊命令,使得名称可以在容器和容器之间使用 1.1...1.3.删除docker名称,docker的名称都是唯一的,即一但使用了就不能在另一个镜像使用该名称,可以删除后重新命名....信息了 3.自定义容器的网络 容器的网络(network)是用来隔离容器和容器之间或者网络与网络之间的方法,所以,所以我们通过建立网络来隔离容器.其中,内置的bridge网络是无法删除的. 3.1.创建网络...3.2.将一个容器添加至新创建的网络中 #这里创建了一个db的容器(若本地没有该镜像会自动拉取) wxl@wxl-pc:~$ docker run -d --network=my-bridge-network...web #再次进入db容器 wxl@wxl-pc:~$ docker exec -it db bash #ping web容器,发现已经可以ping通 root@237e0f7060b6:/# ping
: bridge:Docker中默认的网络驱动模型,在启动容器时如果不指定则默认为此驱动类型; host:打破Docker容器与宿主机之间的网络隔离,直接使用宿主机的网络环境,该模型仅适用于Docker17.6...也无法保证容器重启后的IP地址不变,所以更好的方式是通过别名进行互联,在网络中加入DNS服务器,将容器名与IP地址进行匹配,省去了手动修改Web服务中连接mysql的IP的过程。...为了实现不同容器通过容器名或别名的互连,docker提供了以下几种: 在启动docker容器时加入--link参数,但是目前已经被废弃,废弃的主要原因是需要在连接的两个容器上都创建--link选项,当互连的容器数量较多时...,操作的复杂度会显著增加; 启动docker容器后进入容器并修改 /etc/hosts 配置文件(本地DNS解析),缺点是手动配置较为繁杂; 用户自定义bridge网桥,这是目前解决此类问题的主要方法...,提供更好的隔离效果和更好的互通性(更好的隔离效果是针对外界网络,而更好的互通性则是指同一bridge下的不同容器之间),用户自定义bridge在容器之间提供了自动DNS解析。
: bridge:Docker中默认的网络驱动模型,在启动容器时如果不指定则默认为此驱动类型; host:打破Docker容器与宿主机之间的网络隔离,直接使用宿主机的网络环境,该模型仅适用于Docker17.6...为了实现不同容器通过容器名或别名的互连,docker提供了以下几种: 在启动docker容器时加入--link参数,但是目前已经被废弃,废弃的主要原因是需要在连接的两个容器上都创建--link选项,当互连的容器数量较多时...,操作的复杂度会显著增加; 启动docker容器后进入容器并修改 /etc/hosts 配置文件(本地DNS解析),缺点是手动配置较为繁杂; 用户自定义bridge网桥,这是目前解决此类问题的主要方法,...提供更好的隔离效果和更好的互通性(更好的隔离效果是针对外界网络,而更好的互通性则是指同一bridge下的不同容器之间),用户自定义bridge在容器之间提供了自动DNS解析。...3.3、通过--link建立连接(官方不推荐使用) 原理分析: 运行容器时,指定参数link,使得源容器与被链接的容器可以进行相互通信,并且接受的容器可以获得源容器的一些数据,比如:环境变量。
开启MongoDB服务时不添加任何参数时默认是没有权限验证的,登录的用户可以通过默认端口无需密码对数据库任意操作(增删改高危动作)而且可以远程访问数据库。...MongoDB安全加固措施: 1、配置账号密码,开启MongoDB的权限访问 Docker安装MongoDB时开启权限验证的命令: docker run -itd --name mongo-test...--auth:需要密码才能访问容器服务(注意:安全问题,MongoDB默认是不开启权限验证的,不过设置了这里就相当于修改MongoDB的配置auth=ture启用权限访问)。...修改完成后重启服务: systemctl restart mongod 如果重启失败,可能是SELinux的安全策略限制了MongoDB使用新的端口,我们需要放行MongoDB使用新的端口: [root...配置防火墙 如果你需要服务被互联网上的其他电脑访问,那么你需要配置防火墙,运行你的端口被访问 # 开放7017端口 [root@thinkvm01 thinktik]# firewall-cmd --zone
192.168.80.131是可以被外部主机访问的,所以上述端口映射之后,外部主机也能访问容器内部的web应用。...(3)映射所有接口地址 格式:-p hostPort:containerPort 这是最常用的端口映射方式,采用这种方式映射了主机指定端口到容器指定端口之后,只要主机能被外部主机访问,容器内的web应用也能被外部主机访问...二.容器互联 容器互联的目的是为了使得多个容器之间能相互连通和访问,实现容器互联有2种方式: 1.使用--link参数来使容器互联 2.将容器加入自定义的Docker网络实现互联 使用--link参数使容器互联...使用"--link"参数实现容器互联是指:在启动容器时将容器连接到另一个容器。...from 172.18.0.3: icmp_seq=1 ttl=64 time=0.072 ms 三.为容器配置DNS 容器有自己的内部网络和ip地址(使用docker inspect可以获取所有的变量
@docker ~]#使用ip ad再次进行查看一下 例如进去一个容器进行查看: #进入容器 [root@docker ~]# docker exec -it 3866dbef9195 /bin/bash...[root@docker ~]# 是访问不了的: none无网络实战 在这种模式下不会有IP地址的:(例如我们启动一个centos设置none模式) [root@docker ~]# docker...@ee972f975128 /]# 进入mysql容器进行测试; #可以看到上面打开的tomcat1的Ip地址是172.17.0.4 #进入mysql进行ping测试 [root@docker ~]...假如这两台容器能够进行双向通信tomcat能够访问redis同样redis也可以访问tomcat: 只需把这两个容器加入到咱们新创建的网桥中: [root@docker ~]# docker network...[root@docker html]#执行成功之后即可访问容器的8080端口即可与宿主机一致 -p 8080:80表示宿主机的8080端口映射的容器nginx的80端口 -v /usr/local/
领取专属 10元无门槛券
手把手带您无忧上云