广告
返回顶部
首页 > 资讯 > 精选 >如何从零开始搭建自动部署docker环境
  • 607
分享到

如何从零开始搭建自动部署docker环境

2023-06-19 10:06:33 607人浏览 独家记忆
摘要

本篇文章给大家分享的是有关如何从零开始搭建自动部署Docker环境,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。从0开始搭建自动部署环境前言从Docker改变使用动态库后,Do

本篇文章给大家分享的是有关如何从零开始搭建自动部署Docker环境,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

从0开始搭建自动部署环境

前言

从Docker改变使用动态库后,DooD不再可行,而Dind依然可行。针对此改变,重新整理并记录自动部署环境配置步骤。

此环境是实现微服务自动部署的基础,使用jenkins持续集成工具,并内置了java和Maven,并实现了容器内运行Docker命令的功能。

软件环境

  • 宿主机win10

  • 虚拟机Centos-7-x86_64-Minimal-1708

  • Docker 17.09.0-ce

  • apache-maven-3.5.2

  • jdk 1.8.0_151

  • jenkins 2.73.3

虚拟机安装配置

1. 安装Docker

参考官方教程Get Docker CE for CentOS 可选项:更换源。官方源下载Docker可能很慢,更换成国内的Docker源,比如阿里云的Docker源https://download.docker.com/linux/centos/docker-ce.repo

2. 启动Docker并设置开机自启

$ sudo service docker start$ sudo chkconfig docker on

3. 更换Docker镜像源

从Docker官方源下载镜像可能很慢,更换成阿里云的源即可。阿里云专属加速器地址。教程照搬一下,方便查阅。

安装/升级你的Docker客户端

推荐安装1.10.0以上版本的Docker客户端,参考文档 docker-ce

如何配置镜像加速器
针对Docker客户端版本大于1.10.0的用户

您可以通过修改daemon配置文件/etc/docker/daemon.JSON来使用加速器:

sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{  "reGIStry-mirrors": ["Https://a2srrwpd.mirror.aliyuncs.com"]}EOFsudo systemctl daemon-reloadsudo systemctl restart docker

容器安装配置

1. 创建Dockerfile

该Dockerfile已实现:

  1. 安装openjdk1.8、maven、jenkins、git

  2. maven配置阿里云镜像源

  3. jenkins自启

  4. 时区调整成中国上海

Dockerfile内容如下:

FROM centos:centos7.4.1708MaiNTAINER "Simon Sun"<simon.sun.dev@hotmail.com>ADD http://www-us.apache.org/dist/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz /optUSER rootRUN tar -zxvf /opt/apache-maven-3.5.2-bin.tar.gz -C /opt \&& yum install -y wget \&& yum install -y initscripts \&& yum install -y sudo \&& yum install -y java-1.8.0-openjdk \&& yum install -y java-1.8.0-openjdk-devel \&& yum install -y git# install jenkinsRUN wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo \&& rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key \&& yum install -y jenkins# install docker with aliyun mirror sourceRUN yum install -y yum-utils \  device-mapper-persistent-data \  lvm2 \&& yum-config-manager \    --add-repo \    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo \&& yum-config-manager --disable docker-ce-edge \&& yum install -y docker-ceRUN chmod a+x /opt/apache-maven-3.5.2/bin/mvn# add user jenkins and add user jenkins to group docker# set root passWord to rootRUN echo "jenkins ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers \&& gpasswd -a jenkins docker \&& echo "root:root" | chpasswdENV JAVA_HOME /usr/lib/JVM/javaENV PATH $JAVA_HOME/bin:$PATHENV MAVEN_HOME /opt/apache-maven-3.5.2ENV PATH $MAVEN_HOME/bin:$PATHENV TZ=Asia/ShanghaiRUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone# add aliyun maven mirror sourceRUN sed -i '/<\/mirrors>/i\<mirror>\n  <id>nexus-aliyun<\/id>\n  <mirrorOf>central<\/mirrorOf>\n  <name>Nexus aliyun<\/name>\n  <url>http://maven.aliyun.com/nexus/content/groups/public<\/url>\n<\/mirror>' /opt/apache-maven-3.5.2/conf/settings.xmlUSER jenkinsCMD sudo service jenkins start && tail -F /var/log/jenkins/jenkins.log

2. 编译Dockerfile

docker build -t jeesun/java-jenkins .

3. 启动容器

docker run --privileged -i -t -v /var/run/docker.sock:/var/run/docker.sock -p 8080:8080 jeesun/java-jenkins

此时我已经使用jenkins账户登录到容器中,根据Dockerfile,此时jenkins已经自启,且目前正在运行命令tail -F /var/log/jenkins/jenkins.log

  1. Ctrl+P+Q退出bash。命令Ctrl+P+Q保证退出容器不关闭容器。

  2. 访问http://localhost:8080。当然,因为我装的是minimal版的CentOS,没有图形界面,只能在宿主机上通过http://虚拟机ip:8080来访问。可使用命令ip addr查看虚拟机ip地址。

  3. 使用docker ps查看CONTAINER ID。

  4. 使用docker exec -it container_id /bin/bash进入容器。

  5. 首次访问该地址需要使用/var/lib/jenkins/secrets/initialAdminPassword中的初始管理员密码来解jenkins。 执行cat /var/lib/jenkins/secrets/initialAdminPassword就可以知道密码了。

  6. 按照页面指示继续,jenkins会推荐下载一些插件。我默认都安装了。如果安装失败重试即可。然后就是填入新的管理员账号密码。完成后正式进入jenkins管理页面。

5. 测试

选择新建,填入项目名称,选择构建一个自由风格的软件项目。 构建——》增加构建步骤——》Execute shell——》填入docker run hello-world——》保存。选择立即构建。如果不报错,气球为蓝色,说明成功。

6.自动部署

从0开始搭建自动部署环境(续)

报错解决

1. 错误1

错误内容
Got permission denied while trying to connect to the Docker daemon Socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.34/version: dial unix /var/run/docker.sock: connect: permission denied
解决方案
  1. 优先参考官方Manage Docker as a non-root user。

  2. 关闭虚拟机的selinux(可能有用)。参考查看 SELinux状态及关闭SELinux。

  3. 在虚拟机中修改/var/run/docker.sock的权限。(很危险!!!)

$ sudo chmod 777 /var/run/docker.sock

2. 错误2

错误内容
Failed to get D-Bus connection: Operation not permitted
解决方案

忽略。

3. 错误3

错误内容
Couldn't connect to Docker daemon at http+unix://var/run/docker.sock - is it running?
解决方案

权限问题。解决办法同错误1。

以上就是如何从零开始搭建自动部署docker环境,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网精选频道。

--结束END--

本文标题: 如何从零开始搭建自动部署docker环境

本文链接: https://www.lsjlt.com/news/295360.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作