Docker制作镜像并部署bind9(yum安装bind)--use

镜像制作

1.1 下载镜像

docker pull centos:centos7.9.2009

1.2 运行容器

[root@localhost ~]# docker run -d \
--privileged \
--name=bind9 \
--restart=always \
-p 53:53/udp \
-p 53:53/tcp \
-v /data/bind9:/etc/bind \
-v /sys/fs/cgroup:/sys/fs/cgroup \
centos:centos7.9.2009 /usr/sbin/init# 查看容器日志
[root@localhost ~]# docker logs bind9# 进入容器查看
[root@localhost ~]# docker exec -it bind9 bash# 步骤七: 查看容器运行情况
root@ubuntu-vm1:/data/bind9# docker ps
CONTAINER ID   IMAGE                   COMMAND            CREATED          STATUS          PORTS                                                                  NAMES
3e12e7dd4439   centos:centos7.9.2009   "/usr/sbin/init"   42 seconds ago   Up 41 seconds   0.0.0.0:53->53/tcp, 0.0.0.0:53->53/udp, :::53->53/tcp, :::53->53/udp   bind9

1.3 部署named服务

# 1. 进入容器查看
[root@localhost ~]# docker exec -it bind9 bash# 2. 关闭SELinux与防火墙
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl stop firewalld# 永久关闭
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@localhost ~]# systemctl disable firewalld# 3. yum 安装DNS服务
[root@localhost ~]# yum install -y bind* vim*# 查看bind是否完成
[root@localhost yum.repos.d]# rpm -aq |grep bind# 状态管理
systemctl enable named --now
systemctl status named
systemctl stop named
systemctl start named
systemctl restart named

1.4 配置文件

1.4.1 named.conf

# 在docker容器中执行
$. cp /etc/named.conf /etc/named.conf-bak
$. vi /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// See the BIND Administrator's Reference Manual (ARM) for details about the
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.htmloptions {// listen-on port 53 { 127.0.0.1; };listen-on port 53 { any; };listen-on-v6 port 53 { ::1; };directory       "/var/named";dump-file       "/var/named/data/cache_dump.db";statistics-file "/var/named/data/named_stats.txt";memstatistics-file "/var/named/data/named_mem_stats.txt";recursing-file  "/var/named/data/named.recursing";secroots-file   "/var/named/data/named.secroots";//allow-query     { localhost; };allow-query     { any; };/*- If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.- If you are building a RECURSIVE (caching) DNS server, you need to enablerecursion.- If your recursive DNS server has a public IP address, you MUST enable accesscontrol to limit queries to your legitimate users. Failing to do so willcause your server to become part of large scale DNS amplificationattacks. Implementing BCP38 within your network would greatlyreduce such attack surface*/recursion yes;forward first;forwarders { 8.8.8.8; };dnssec-enable no;dnssec-validation no;/* Path to ISC DLV key */bindkeys-file "/etc/named.root.key";managed-keys-directory "/var/named/dynamic";pid-file "/run/named/named.pid";session-keyfile "/run/named/session.key";
};logging {channel default_debug {file "data/named.run";severity dynamic;};
};zone "." IN {type hint;file "named.ca";
};include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";// mine
include "/etc/bind/named.zones";

1.4.2 named.zones

# 宿主机中
[root@localhost ~]# cd /data/bind9
[root@localhost ~]# vi named.zones
// named.zones文件内容如下:
zone "lpf-test.com" IN {type master;file "/etc/bind/lpf-test.com.hosts";
};zone "31.168.192.in-addr.arpa" IN {type master;file "/etc/bind/lpf-test.com.back";
};

1.4.3 lpf-test.com.hosts, lpf-test.com.back

[root@localhost ~]# cd /data/bind9/zones
[root@localhost ~]# vi lpf-test.com.hosts
$TTL 1D
@       IN SOA  @ root.lpf-test.com. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimum@               NS      dns.lpf-test.com.
@               IN A    192.168.31.85
*               IN A    192.168.31.85[root@localhost ~]# vi lpf-test.com.back
$TTL 1D
@       IN SOA  @ root.lpf-test.com. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimum
@       IN      NS      dns.lpf-test.com.
100     IN      PTR     dns.lpf-test.com
101     IN      PTR     www.lpf-test.com
102     IN      PTR     smb.lpf-test.com
103     IN      PTR     ftp.lpf-test.com 

1.4.4 步骤四:检查

root@my-ubuntu-vm1:~# docker exec -it bind9 bash# 查看状态
root@8d4b47ea885c:/# service named status
root@8d4b47ea885c:/# service named restart
root@8d4b47ea885c:/# service named status$. named-checkconf -z "$NAMEDCONF"
$. named-checkconf /etc/named.conf# 检查主配置文件: 
[root@localhost ~]# named-checkconf# named-checkzone yourDNS域名和路径
# 检查正向解析文件
[root@localhost ~]# named-checkzone lpf-test.com \
/etc/bind/lpf-test.com.hostszone lpf-test.com/IN: loaded serial 0OK# 检查反向解析文件:
[root@localhost ~]# named-checkzone \
31.168.192.in-addr.arpa \
/etc/bind/lpf-test.com.backzone 10.168.192.in-addr.arpa/IN: loaded serial 0OK# 问题排查
journalctl -xefu named
journalctl -xefu docker
journalctl -u named

1.4.5 开机启动执行

# 容器中执行如下命令
chmod +x /etc/rc.d/rc.local
vi /etc/rc.d/rc.local
# 添加如下内容  
mkdir -p /etc/bind
cp -p /opt/* /etc/bind

1.5 打包镜像

# 打包镜像
docker commit -p \
-a "langpf" \
-m "centos7.9.2009, bind-9.11.4" \
d46d528d2f97 centos/bind9:9.11.4-26 # 推送到本地仓库
1) 
docker tag centos/bind9:9.11.4-26 \
k8s-harbor.com/my-project/centos-bind9:9.11.4-262) 
docker login \
https://k8s-harbor.com/harbor/projects \
-u admin -p Harbor123453) 
docker push k8s-harbor.com/my-project/centos-bind9:9.11.4-26

问题处理

问题:在docker中启动服务报错:New main PID 547 does not belong to service, and PID file is not owned by root. Refusing.解决:挂载宿主机 cgroup目录,启动时加上 -v /sys/fs/cgroup:/sys/fs/cgroup完整启动命令如下:docker run -itd --name=ldap --privileged=true \-v /sys/fs/cgroup:/sys/fs/cgroup \ -p 80:80 -p 389:389 centos:7 /usr/sbin/init

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/87312.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

冲鸭~~!10分钟部署清华ChatGLM2-6B,效果测试:不愧是中文榜单第一

来源: AINLPer公众号(每日干货分享!!) 编辑: ShuYini 校稿: ShuYini 时间: 2023-9-25 引言 今年6月份清华大学发布了ChatGLM2,相比前一版本推理速度提升42%。最近,终于有时间部署测试看看了,部署…

我的安卓AOSP开发使用到的教程汇总【安卓12】

目录 投屏软件日志打印脚本 bat 【gpt生成的】摄像头定位静默安装APP系统签名多线程使用APK打包APK OTA 差分包制作服务和主线程通信代码注释模板阿里云ClassAOSP教程添加默认APN关闭双击电源键打开相机 ubuntu安装遇到的bug 投屏软件 scrcpy 【设置为系统变量后 可以投屏的情…

Vue 搜索历史管理-本地持久化管理

搜搜历史管理 需求: 点击搜索(添加历史) ​ 点击 搜索按钮后 或者 底下历史记录,都能进行搜索(相当于跳转到搜索的列表组件) ​ ① 若之前 没有 相同的搜索关键字,则在搜素历史的最前面直接…

次时代摸鱼骚操作:人在办公室轻松观看家里电脑上的4k电影(移动端公网访问本地群辉存储视频文件)

如何使用iPhone15在办公室观看家里电脑上的4k电影? 文章目录 如何使用iPhone15在办公室观看家里电脑上的4k电影?1.使用环境要求:2.下载群晖videostation:3.公网访问本地群晖videostation中的电影:4.公网条件下使用电脑…

适用于初学者,毕业设计的5个c语言项目,代码已开源

C语言项目集 项目介绍 该项目适用于初学者学习c语言,也适用于高校学生课程设计,毕业设计参考。 项目并不能满足所有人的需求,可进行项目指导,定制开发。 开源地址 c语言项目代码地址 项目列表 该项目包含如下5个管理系统&am…

在线安装qt5.15之后任意版本

下载qt现在安装包: window安装包链接 进入cmd,用命令行打开安装包,并指定组件下载地址(这个是关键,之前用的是腾讯镜像,出现了版本灰色无法选中问题) .\qt-unified-windows-x64-4.6.1-online…

git的基本操作

git的基本操作 一般思路: 新建个人分支加粗样式–克隆远程仓库代码—编辑本地分支代码–合入master分支(先切换到master分支)–master分支代码push到远程仓库 1、安装好git之后必须设置用户和邮箱信息之后才能提交代码到缓存区、本地库 git …

[C++随笔录] list使用

list使用 构造函数insert && 迭代器push_back && pop_back && push_front && pop_fronterasesort && find && reverse list的底层结构就是 带头双向循环链表 构造函数 // 默认构造 list<int> lt; cout << "l…

CodeTON Round 6 (Div 1 + Div 2, Rated, Prizes!)

CodeTON Round 6 (Div. 1 Div. 2, Rated, Prizes!)(A - E) CodeTON Round 6 (Div. 1 Div. 2, Rated, Prizes!) A. MEXanized Array&#xff08;分类讨论&#xff09; 可以发现当 n < k 或者 k > x 1 的时候无法构成 &#xff0c; 其余的时候贪心的用 x 最大化贡献即…

SolidJs节点级响应性

前言 随着组件化、响应式、虚拟DOM等技术思想引领着前端开发的潮流&#xff0c;相关的技术框架大行其道&#xff0c;就以目前主流的Vue、React框架来说&#xff0c;它们都基于组件化、响应式、虚拟DOM等技术思想的实现&#xff0c;但是具有不同开发使用方式以及实现原理&#…

拒绝v-if判断组件显隐 tsx版本

定义组件map集合 根据map集合key值获取 进行组件展示 1。定义组件map集合 import {Input,Select,Radio,Checkbox,AutoComplete,Cascader,InputNumber,Switch,TreeSelect,Slider,Rate } from ant-design-vue; import {ref} from vue export const componentMap ref(new Map<…

基于win32实现TB登陆滑动验证

这里写目录标题 滑动验证触发条件&#xff1a;失败条件&#xff1a;解决方法:清除cooKie 滑动验证方式一&#xff1a;win32 api获取窗口句柄&#xff0c;选择固定位置 成功率高方式二&#xff1a; 原自动化滑动&#xff0c;成功率中 案例 先谈理论&#xff0c;淘宝 taobao.com …

ChatGPT详细搭建教程+支持AI绘画

一、AI创作系统 SparkAi系统是基于很火的GPT提问进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT系统&#xff1f;小编这里写一个详细图文教程吧&#x…

如何解决 Redis 的并发竞争 key 问题

AI绘画关于SD,MJ,GPT,SDXL百科全书 面试题分享点我直达 2023Python面试题 2023最新面试合集链接 2023大厂面试题PDF 面试题PDF版本 java、python面试题 项目实战:AI文本 OCR识别最佳实践 AI Gamma一键生成PPT工具直达链接 玩转cloud Studio 在线编码神器 玩转 GPU AI…

人才测评系统在企业招聘中的应用

人才测评作为招聘工具&#xff0c;已经频繁应用在各大企业中&#xff0c;如今的社会中&#xff0c;人才对于企业而言&#xff0c;可谓是创造产值的基础。换句话说&#xff0c;”企业得人才者、才能得天下”&#xff0c;有了人才之后&#xff0c;企业在行业中才有竞争力。 目前…

动静分离和前后端分离

动静分离和前后端分离 一、动静分离 侧重单体项目的静态资源分离 二、前后端分离 前后端完全分离

ES修改字段的数据类型

-- mysql修改字段数据类型语句 ALTER TABLE 表名 MODIFY COLUMN 列名 修改的字段类型;-- hive 修改字段数据类型语句 ALTER TABLE 表名 CHANGE COLUMN 列名 修改的字段类型;--es修改字段数据类型语句无法通过一个语句进行修改。思路&#xff1a; 1、对修改字段重新建修改类型的…

【Redis】Redis做为缓存,MySQL如何与Redis保持数据一致

Redis的作用 一般情况下Redis是用来实现应用和数据库之间的一个读操作的缓存层&#xff0c;主要目的是减少数据库的io&#xff0c;还可以提升数据库io性能 方法一&#xff1a; 先更新MySQL数据库&#xff0c;再删除缓存&#xff0c;再从数据库查询到的最新的数据同步到redis…

Unity实现角色受到攻击后屏幕抖动的效果

文章目录 实现效果摄像机抖动脚本 玩家受伤其他文章 实现效果 首先看一下实现效果。 摄像机 我们要使用屏幕抖动&#xff0c;使用的是CinemachineVirtualCamera这个组件&#xff0c;这个组件需要在包管理器中进行导入。 导入这个组件之后&#xff0c;创建一个Chinemachine-…

CH2--x86系统架构概览

2.1 OVERVIEW OF THE SYSTEM-LEVEL ARCHITECTURE 图中的实线箭头表示线性地址&#xff0c;虚线表示段选择器&#xff0c;虚线箭头表示物理地址 2.1.1 Global and Local Descriptor Tables 全局描述符表 (GDT) GDT是一个全局的段描述符表&#xff0c;它存储在系统内存中的一个固…