docker pull coredns/coredns:1.8.3
在下载 coredns 镜像之前先不要停止 DNS 服务,否则解析不到 docker 镜像仓库服务器。
sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
192.168.0.1 是家里无线路由器的 IP 地址。我这里用的是 TL-WDR7650 千兆易展无线路由。
# ls
Corefile hostsfile
# cat Corefile
.:53 {
hosts /etc/coredns/hostsfile {
fallthrough
}
forward . 192.168.0.1:53
log
}
把之前创建的 Guest 虚拟机 IP 都加进来。
# cat hostsfile
devops@repositoryServer:~/dockerSrvStorage/coredns$ cat hostsfile
192.168.0.114 repositoryServer dnsServer gitlab jenkins gitlab.telbox.cn jenkins.telbox.cn
192.168.0.112 devopServer0
192.168.0.113 devopServer1
192.168.0.115 devopServer2
192.168.0.106 k8s-master-0
192.168.0.107 k8s-node-0
192.168.0.109 k8s-node-1
192.168.0.108 k8s-node-2
192.168.0.114 basehost0
192.168.0.111 ubuntu20Server
docker run -it -d --net=host \
--name=coredns --restart=always \
-v /home/devops/dockerSrvStorage/coredns:/etc/coredns/ \
coredns/coredns:1.8.3 \
-conf /etc/coredns/Corefile
备注: –net=host 要指定,如果不指定,在同宿主机的容器中无法查询 DNS。如果指定了该项,则无须指定-p 选项。默认使用宿主机的端口。
Reference:
BIND, Dnsmasq 等常见 DNS Server(却不包含 CoreDNS): https://computingforgeeks.com/bind-vs-dnsmasq-vs-powerdns-vs-unbound/ 安装 Core DNS Docker: https://blog.csdn.net/weixin_36938307/article/details/105390004
各种 docker 服务一般都需要持久化映射,以方便配置、数据的保存。本地使用 /home/devops/dockerSrvStorage 作为各种应用存储的根目录。 其中参数 –hostname gitlab.telbox.cn 定义了用户访问 gitlab 服务的主机域名。
mkdir -p /home/devops/dockerSrvStorage/gitlab
sudo docker pull gitlab/gitlab-ce:13.9.2-ce.0
sudo docker run --detach \
--hostname gitlab.telbox.cn \
--publish 9181:443 --publish 9180:80 --publish 9182:22 \
--name gitlab \
--restart always \
--volume /home/devops/dockerSrvStorage/gitlab/config:/etc/gitlab \
--volume /home/devops/dockerSrvStorage/gitlab/logs:/var/log/gitlab \
--volume /home/devops/dockerSrvStorage/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:13.9.2-ce.0
如有需要,可进入 GitLab 容器进行配置。
sudo docker exec gitlab gitlab-ctl reconfigure
第一次访问安装好的 GitLab 服务http://gitlab.telbox.cn:9180/需要设置root用户的口令。
Reference: https://www.jianshu.com/p/080a962c35b6 https://zhuanlan.zhihu.com/p/63786567
mkdir -p /home/devops/dockerSrvStorage/jenkins
sudo docker run -p 9183:8080 -p 9184:50000 \
--name jenkins -d \
-v /home/devops/dockerSrvStorage/jenkins:/var/jenkins_home \
jenkins/jenkins:lts
启动后,进入 docker 查看初始密码。首次访问 jenkins.telbox.cn:9183 时会用到这个密码。
sudo docker exec -it jenkins bash
jenkins@e061aa64ed7b:/$ cat /var/jenkins_home/secrets/initialAdminPassword
访问 jenkins.telbox.cn:9183 输入初始密码,选择安装建议的插件。 插件安装完毕后,要求输入 Jenkins URL,这里输入 jenkins.telbox.cn:9183
The Jenkins URL is used to provide the root URL for absolute links to various Jenkins resources. That means this value is required for proper operation of many Jenkins features including email notifications, PR status updates, and the BUILD_URL environment variable provided to build steps. The proposed default value shown is not saved yet and is generated from the current request, if possible. The best practice is to set this value to the URL that users are expected to use. This will avoid confusion when sharing or viewing links.
如果需要,可以给 Jenkins 配置日志:
mkdir -p /home/devops/dockerSrvStorage/jenkins/data
cat > /home/devops/dockerSrvStorage/jenkins/data/log.properties <<EOF
handlers=java.util.logging.ConsoleHandler
jenkins.level=FINEST
java.util.logging.ConsoleHandler.level=FINEST
EOF
docker run --name myjenkins -p 8080:8080 -p 50000:50000 --env JAVA_OPTS="-Djava.util.logging.config.file=/var/jenkins_home/log.properties" -v `pwd`/data:/var/jenkins_home jenkins
如果 Jenkins 插件安装比较慢,可以使用国内插件镜像源,参考https://blog.csdn.net/oYinHeZhiGuang/article/details/104867525。
Reference: https://github.com/jenkinsci/docker/blob/master/README.md https://www.cnblogs.com/xiaoqi/p/docker-jenkins-cicd.html