大家好,docker服务器搭建相信很多的网友都不是很明白,包括用docker搭建一个dhcp服务器也是一样,不过没有关系,接下来就来为大家分享关于docker服务器搭建和用docker搭建一个dhcp服务器的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
一、在一个局域网中***没有dhcp服务***用docker搭建一个dhcp服务器
1、使用的镜像
sudo docker pull workboot/dhcpd
2、测试的局域网拓扑结构如下:h为 DHCP服务器,ovs*机s1、s2、s3各连着一台等待分配ip的主机。
3、h DHCP服务器通过一对暴露于root namespace的veth pair相连,具体操作如下
3.1、生成*机s1、s2、s3
sudo ovs-vsctl add-br s1sudo ovs-vsctl add-br s2sudo ovs-vsctl add-br s3
3.2、创建veth pair即 v1-v2
sudo ip link add v1 type veth peer name v2
3.3、**up
sudo ip link set dev v1 upsudo ip link set dev v2 up
3.4、给v1配置ip及子网掩码
sudo ifconfig v1 192.168.1.254 mask 255.255.255.0
3.5、生成DHCP服务器,监听v1,挂载本地data文件夹,data里面中只有dhcpd.conf文件
sudo docker run-it\--rm-- host\--init\--name=dhcpServer1\-v~/emxbook/docker-dhcpd/data:/data\workboot/dhcpd v1
dhcpd.conf
sub 192.168.1.0 mask 255.255.255.0{option routers 192.168.1.1;option sub-mask 255.255.255.0;option domain-name"emx.local";option domain-name-servers 8.8.8.8;range 192.168.1.2 192.168.1.100;}
3.5、将v2连接到*机上
sudo ovs-vsctl add-port s1 v2
3.6、*机s1、s2、s3彼此相连
sudo ovs-vsctl add-port s1 s1p1sudo ovs-vsctl set Interface s1p1 type=patchsudo ovs-vsctl set Interface s1p1 options:peer=s2p1sudo ovs-vsctl add-port s2 s2p1sudo ovs-vsctl set Interface s2p1 type=patchsudo ovs-vsctl set Interface s2p1 options:peer=s1p1sudo ovs-vsctl add-port s1 s1p2sudo ovs-vsctl set Interface s1p2 type=patchsudo ovs-vsctl set Interface s1p2 options:peer=s3p1sudo ovs-vsctl add-port s3 s3p1sudo ovs-vsctl set Interface s3p1 type=patchsudo ovs-vsctl set Interface s3p1 options:peer=s1p2
3.7、创建主机h1、h2、h3,并将其连接到*机上,其中ubunut:5是添加了基本-tools、isc-dhcp-client,创建的时候记得使用--cap-add=NET_ADMIN
sudo docker run-itd--work=none--name=h1--cap-add=NET_ADMIN ubuntu:5sudo docker run-itd--work=none--name=h2--cap-add=NET_ADMIN ubuntu:5sudo docker run-itd--work=none--name=h3--cap-add=NET_ADMIN ubuntu:5sudo ovs-docker add-port s1 eth1 h1sudo ovs-docker add-port s2 eth1 h2sudo ovs-docker add-port s3 eth1 h3
3.8、可以使用floot-light控制*机s1、s2、s3*机(选择)
sudo ovs-vsctl set-controller s1 tcp:127.0.0.1:6653sudo ovs-vsctl set-controller s2 tcp:127.0.0.1:6653sudo ovs-vsctl set-controller s3 tcp:127.0.0.1:6653
4、使用dhclient eht1向DHCP服务器申请
4.1、申请ip之前
4.2、申请ip(服务器端界面)
4.3申请ip之后,h1(192.168.1.38):
同理,h2(192.168.1.39):
h3(192.168.1.40):
5、测试
5.1、h1 ping h2(192.168.1.39):
5.2、h2 ping h3(192.168.1.40):
6、最后拓扑结构图,ip分配之后的拓扑结构:DHCP服务器(192.168.1.6)、h1(192.168.1.38)、h2(192.168.1.39)、h3(192.168.1.40)
7、代码汇总参考
sudo ovs-vsctl add-br s1sudo ovs-vsctl add-br s2sudo ovs-vsctl add-br s3sudo ip link add v1 type veth peer name v2sudo ip link set dev v1 upsudo ip link set dev v2 upsudo ifconfig v1 192.168.1.6 mask 255.255.255.0sudo docker run-it\--rm-- host\--init\--name=dhcpServer\-v~/emxbook/docker-dhcpd/data:/data\workboot/dhcpd v1sudo ovs-vsctl add-port s1 v2sudo ovs-vsctl add-port s1 s1p1sudo ovs-vsctl set Interface s1p1 type=patchsudo ovs-vsctl set Interface s1p1 options:peer=s2p1sudo ovs-vsctl add-port s2 s2p1sudo ovs-vsctl set Interface s2p1 type=patchsudo ovs-vsctl set Interface s2p1 options:peer=s1p1sudo ovs-vsctl add-port s1 s1p2sudo ovs-vsctl set Interface s1p2 type=patchsudo ovs-vsctl set Interface s1p2 options:peer=s3p1sudo ovs-vsctl add-port s3 s3p1sudo ovs-vsctl set Interface s3p1 type=patchsudo ovs-vsctl set Interface s3p1 options:peer=s1p2sudo docker run-itd--work=none--name=h1--cap-add=NET_ADMIN ubuntu:5sudo docker run-itd--work=none--name=h2--cap-add=NET_ADMIN ubuntu:5sudo docker run-itd--work=none--name=h3--cap-add=NET_ADMIN ubuntu:5sudo ovs-docker add-port s1 eth1 h1sudo ovs-docker add-port s2 eth1 h2sudo ovs-docker add-port s3 eth1 h3sudo ovs-vsctl set-controller s1 tcp:127.0.0.1:6653sudo ovs-vsctl set-controller s2 tcp:127.0.0.1:6653sudo ovs-vsctl set-controller s3 tcp:127.0.0.1:6653
二、基于阿里云服务器安装Docker完整教程(附案例演示)
本文档详细记录了在阿里云服务器上安装和配置Docker以及Docker Compose的过程,适合持续学习的前端开发者使用。
首先,推荐在Linux环境下(如CentOS7)通过yum命令安装Docker,因其相对简单,避免了Windows环境中可能遇到的复杂*和错误。只需运行yum命令,Docker软件包就会被包含在默认的CentOS-Extras源中。
安装完成后,启动Docker服务,并设置为开机启动。测试Docker安装是否成功,只需输入相关命令查看返回的Docker版本信息。由于国内访问Docker官方仓库速度慢,建议将docker源更改为国内镜像,以提高速度和稳定*。
Docker Compose是为多容器应用管理和编排设计的,通过YAML文件定义相关联的容器。安装Docker后,还需单独安装Docker Compose以利用其功能。本文还列出了Docker常用的一些命令,如拉取镜像、查看容器状态和删除镜像等。
实例演示部分,我们以SpringBoot项目“云收藏”为例,通过项目、解压、配置和启动,展示如何使用Docker和Docker Compose进行项目部署。项目启动成功后,可以访问IP查看项目首页。
三、入门、快速搭建Docker分布式项目环境
1.什么是Docker
借用下网上传统虚拟机与Docker的对比图片。
传统虚拟化应用程序中,不仅包含应用程序和必要的二进制文件库,还包含一个完整的操作系统。
而Docker容器仅包含应用程序和相关依赖项,在主机的操作系统用户空间中作为一个独立进程运行,与其他容器共享内核,从而实现了虚拟机的资源隔离和分配,具有更高的可移植*和效率提高。
2.为什么使用Docker
1.更快速的交付和部署
开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以使用这个容器来部署代码。
2.高效部署和扩容
Docker容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。
3.更高的资源利用率
Docker对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker容器。容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的*能很高,同时系统的开销尽量小。传统虚拟机方式运行 10个不同的应用就要起 10个虚拟机,而Docker只需要启动 10个隔离的应用即可。
4.更简单的管理
使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。
3.Docker的工作原理和概念
自己制作镜像然后上传仓库或使用仓库已有的镜像文件拉取到容器中部署。
为了方便Docker的说明,本次例子使用虚拟机安装CentOS 7来演示。CentOS 7的安装请等查看下篇文章或自行百度。
1.安装之前的准备工作
按照顺序,执行如下操作
1、安装必要的一些系统工具
2、添加软件源信息
3、更新并安装Docker-CE
安装准备工作
2.开启Docker服务
运行docker version如果出现以下情况,说明当前用户没有 root相关操作权限
无root权限
解决思路
先查看有多少镜像
运行docker run hello-world测试命令,如果出现下方红框内消息,证明安装成功
3.查看docker基本信息和版本
1.构建Nginx基础镜像
查询nginx镜像
镜像拉取
查看对外的访问路径
怎么才能访问刚才启用的nginx
nginx页面内容
我们可以进入容器,看下这个容器是什么样子
查看nginx在哪个位置
我们发现尽管启动了nginx,但是在外部还是不能访问,这是因为docker具有隔离机制,要不然怎么叫做容器化部署呢
Docker内nginx端口
对Nginx进行外网端口映射;
2.构建Tomcat基础镜像
打开容器后,默认安装目录在/usr/local/
3.创建自己的专属镜像
用Dockerfile来制作镜像
创建一个新的镜像,并起名字为nywlw
查看新的镜像
运行自己创建的容器
4.删除容器实例
5.删除镜像
每天发布更多新鲜有含量的技术文章、总有一款适合你。