Linux系统:第十四章:安装Docker,安装配置gitlab私有仓库以及jenkins自动化部署(图文)

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以点击这里获取!

#卸载旧版本

sudo yum remove docker \

docker-client \

docker-client-latest \

docker-common \

docker-latest \

docker-latest-logrotate \

docker-logrotate \

docker-engine \

docker-selinux \

docker-ce

#卸载后将保留/var/lib/docker的内容(镜像、容器、存储卷和网络等)。

rm -rf /var/lib/docker

#下载之前查看网络环境在出口是否封了相应端口

ping baidu.com

#安装前可查看device-mapper-persistent-data和lvm2是否已经安装,如果安装了可以跳过这个步骤

rpm -qa|grep device-mapper-persistent-data

rpm -qa|grep lvm2

#安装依赖软件包

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

#安装yum工具包

sudo yum -y install yum-utils

#设置yum源

如果服务器在国外可以使用官方的

sudo yum-config-manager \

–add-repo \

https://download.docker.com/linux/centos/docker-ce.repo

#如果服务器在国内则使用阿里云的

sudo yum-config-manager \

–add-repo \

http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#更新yum软件包索引

sudo yum makecache fast

#安装Docker

安装最新版本docker-ce

sudo yum install -y docker-ce

#安装指定版本docker-ce可使用以下命令查看

sudo yum list docker-ce.x86_64 --showduplicates | sort -r

#安装特定版本

sudo yum install docker-ce-18.09.1 docker-ce-cli-18.09.1 containerd.io

#安装完成之后可以使用命令查看

docker version

结果:出现Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

#重启docker

systemctl start docker

#查看状态

systemctl status docker

#再次查看版本

docker version

结果:

Client: Docker Engine - Community

Version: 20.10.9

API version: 1.41

Go version: go1.16.8

Git commit: c2ea9bc

Built: Mon Oct 4 16:08:25 2021

OS/Arch: linux/amd64

Context: default

Experimental: true

Server: Docker Engine - Community

Engine:

Version: 20.10.9

API version: 1.41 (minimum version 1.12)

Go version: go1.16.8

Git commit: 79ea9d3

Built: Mon Oct 4 16:06:48 2021

OS/Arch: linux/amd64

Experimental: false

containerd:

Version: 1.4.11

GitCommit: 5b46e404f6b9f661a205e28d59c982d3634148f8

runc:

Version: 1.0.2

GitCommit: v1.0.2-0-g52b36a2

docker-init:

Version: 0.19.0

GitCommit: de40ad0

#通知systemd重载此配置文件

systemctl daemon-reload

#docker开机自启设置

systemctl enable docker.service

#出现Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.指定root用户添加到用户组,然后重试开机自启动设置

usermod -aG docker root

#重载配置,重启docker服务

systemctl daemon-reload

systemctl restart docker

说明:以下为AWS服务器的环境,AWS服务器则执行以下命令进行docker安装

#更新yum源

sudo yum update -y

#安装docker

sudo amazon-linux-extras install docker

#启动docker

sudo service docker start

二、配置docker对外端口

===========================================================================

#安装好docker之后还需要对外暴露接口

vim /usr/lib/systemd/system/docker.service

找到 ExecStart=/usr/bin/dockerd在后面添加tcp://0.0.0.0:端口

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:9004 -H fd://

#重启docker

systemctl restart docker

#centos开放端口宿主机访问

firewall-cmd --add-port=9004/tcp --permanent

firewall-cmd --reload

#查询端口是否开启命令

firewall-cmd --query-port=9004/tcp

#除此之外还可以开机自启动,将firewalld起起来即可,并且允许其自启动

systemctl start firewalld

systemctl enable firewalld

#如果出现Failed to start firewalld.service: Unit is masked.错误则执行以下命令

systemctl unmask firewalld

#浏览器访问,查看docker版本信息

http://xx.xx.xx.xx:9004/version

#如果无法访问,重启服务器查看端口

telnet localhost 9004

#如果不小心删除了/var/lib/docker导致后面拉取镜像时报错open /var/lib/docker/tmp/GetImageBlob974299692: no such file or directory,不用改什么操作,重启docker即可

systemctl daemon-reload

systemctl restart docker

三、安装配置gitlab

=========================================================================

#gitlab-ce为稳定版本,后面不填写版本则默认pull最新latest版本

docker pull gitlab/gitlab-ce

#创建gitlab日志,数据,配置的存放路径,通常会在构建容器的时间,会把配置 (etc) 、 日志 (log) 、数据 (data) 放到容器外面,方便后期数据迁移或者修改配置

sudo mkdir -p /docker/gitlab/config /docker/gitlab/logs /docker/gitlab/data

#构建容器

sudo docker run --detach \

–hostname gitlab \

–publish 8011:443 \

–publish 8012:8012 \

–publish 8013:22 \

–privileged=true \

–name gitlab \

–restart always \

–volume /docker/gitlab/config:/etc/gitlab \

–volume /docker/gitlab/logs:/var/log/gitlab \

–volume /docker/gitlab/data:/var/opt/gitlab \

–volume /docker/gitlab/logs/reconfigure:/var/log/gitlab/reconfigure \

gitlab/gitlab-ce:latest

#添加配置

sudo vi /docker/gitlab/config/gitlab.rb

#添加下面3行

#配置http协议所使用的访问地址,不加端口号默认为80

external_url ‘http://xx.xx.xxx.xxx:8012’

#配置ssh协议所使用的访问地址和端口

gitlab_rails[‘gitlab_ssh_host’] = ‘xx.xx.xxx.xxx’

#此端口是run时22端口映射的8013端口

gitlab_rails[‘gitlab_shell_ssh_port’] = 8013

#保存推出

:wq

#看个人需要,一般而已都会限制内存,也可以在docker启动的时候配置,命令为-m 4G

docker update --memory 4096m --memory-swap -1 gitlab

#重启gitlab

docker restart gitlab

#更新授权

sudo docker exec -it gitlab update-permissions

#进入gitlab容器

docker exec -it gitlab bash

#重新载入配置文件,并开启

gitlab-ctl reconfigure

gitlab-ctl start

#查看密码

gitlab-rails console production

#进入gitlab控制台

gitlab-rails console -e production

#获得用户数据,修改用户密码

user = User.where(id: 1).first

user.password=‘2YkDixw6xJiD/68kCsAZBu9W9ZhGdRlT0YykDYiOvOAE=1’

user.password_confirmation=‘2YkDixw6xJiD/68kCsAZBu9W9ZhGdRlT0YykDYiOvOAE=1’

user.save!

quit

#重启gitlab需要等待一段时间才能访问,否则会出现502,如果出现502,还有可能是内存不够的原因,建议查看docker容器的gitlab日志

docker restart gitlab

四、安装配置jekins

=========================================================================

一、准备工作



#上传jdk到自定义目录,这里提供jdk1.8的linux版本,从官网拉下来的

链接:https://pan.baidu.com/s/1nAVgmke9RbF8MnXo33S72Q

提取码:mvsq

#查看版本

java -version

#上传maven到自定义目录,这里提供maven3.8.3的linux版本,从官网拉下来的

链接:https://pan.baidu.com/s/1rC4NsMX5i0669_ONJV3MJA

提取码:ek1p

#查看版本

mvn -v

#关于git其实可以使用默认的git,进入到容器中通过以下命令进行查看git版本

git --version

#当前也可以自行安装git,在docker容器启动的时候配置映射路径,并且在/etc/profile的path路径中添加git安装路径即可,可通过以下命令查看git安装路径

which git

#需要注意的是docker容器每次重新启动,会将容器内部生成的ssh key移除掉,所以我们可以通过映射路径或者复制宿主机的ssh key到容器内部,也可以重新生成然后去到gitlab的ssh key配置。下面的邮箱为你github、gitee或者gitlab登录的邮箱,执行命令之后,连续三次回车即可生成,生成git的ssh key命令:

ssh-keygen -t rsa -C “java_wxid@aliyun.com”

查询生成的ssh key的路径:

cd ~/.ssh

#外部配置的jdk和maven需要映射到jenkins容器,所以相关的配置也需要映射进去,所以需要提前在宿主机配置

vim /etc/profile

#在最后一行添加java环境变量和maven环境变量

#java环境配置

export JAVA_HOME=/opt/java/jdk

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=./:JAVA_HOME/lib:$JRE_HOME/lib

#maven环境配置

export M2_HOME=/opt/java/maven

#git环境配置

export GIT_HOME=/opt/java/git

#path

export PATH=/bin:/usr/bin:/sbin:/usr/sbin: J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:M2_HOME/bin: G I T H O M E / b i n : GIT_HOME/bin: GITHOME/bin:PATH

#立即重载配置

source /etc/profile

#查看版本信息

mvn -v


二、下载安装配置Jenkins


#下载Jenkins的Docker镜像

docker pull jenkins/jenkins:lts

#创建jenkins工作目录的存放路径

sudo mkdir -p /docker/jenkins/data

#在Docker容器中运行Jenkins

docker run -p 8014:8080 -p 8015:5000 --name jenkins -m 2G \

-u root \

–restart always \

-v /docker/jenkins/data:/var/jenkins_home \

-v /etc/localtime:/etc/localtime \

-v /usr/local/src/apache-maven-3.8.3:/opt/java/maven \

-v /usr/local/src/jdk1.8.0_301:/opt/java/jdk \

-v /etc/profile:/etc/profile \

-v /root/.ssh/id_rsa:/root/.ssh/id_rsa \

-v /var/run/docker.sock:/var/run/docker.sock \

-v /bin/docker:/usr/bin/docker \

-d jenkins/jenkins:lts

#暂停jenkins

docker stop jenkins

#看个人需要,一般而已都会限制内存,可以在docker启动命令中配置,配置命令为-m 2G

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 14
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值