最后的话
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
资料预览
给大家整理的视频资料:
给大家整理的电子书资料:
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
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之后还需要对外暴露接口
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-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
=========================================================================
#上传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的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
docker update --memory 2048m --memory-swap -1 jenkins
#开启jenkins
docker start jenkins
#进入jenkins容器
docker exec -u 0 -it jenkins /bin/bash
#立即重载配置
source /etc/profile
#查看root密码
cat /var/jenkins_home/secrets/initialAdminPassword
#如果提示cat: /var/jenkins_home/secrets/initialAdminPassword: No such file or directory通过查找文件的方式查看密码
find / -name config.xml
一般会出现:
/var/jenkins_home/users/root_9685925808796613467/config.xml
/var/jenkins_home/config.xml
选择用户名相关的文件:
cat /var/jenkins_home/users/root_9685925808796613467/config.xml
找到passwordHash标签:
#jbcrypt:$2a 10 10 10yB8omAzzWpk1oNToWQPIWewpqBKbhJGUU5UDd470yJCN3HVXqCDc6
密码就在#jbcrypt:后面,即
$2a 10 10 10yB8omAzzWpk1oNToWQPIWewpqBKbhJGUU5UDd470yJCN3HVXqCDc6
我们可以改成:
$2a 10 10 10DdaWzN64JgUtLdvxWIflcuQu2fgrrMSAMabF5TSrGK5nXitqK9ZMS
即密码:111111
或者
#jbcrypt:$2a 10 10 10MiIVR0rr/UhQBqT.bBq0QehTiQVqgNpUGyWW2nJObaVAM/2xSQdSq
即密码:123456
使用root用户登录即可
上面那串如何生成的呢?
Jenkins采用Java加密工具jBCrypt,所以我们在生成密码的时候需要添加相关的jar包。
org.mindrot
jbcrypt
0.4
// 加密
String admin = BCrypt.hashpw(“admin”, BCrypt.gensalt());
System.out.println(“加密:”+admin);
// 解密
if(BCrypt.checkpw(“admin”,admin)){
System.out.println(“is match”);
} else {
System.out.println(“is not match”);
}
#如果启动容器的时候未设置开机自启动,也可以通过以下命令配置docker的容器开机自启动:docker update --restart=always 镜像ID
docker update --restart=always e39a959d7bff
最全的Linux教程,Linux从入门到精通
======================
-
linux从入门到精通(第2版)
-
Linux系统移植
-
Linux驱动开发入门与实战
-
LINUX 系统移植 第2版
-
Linux开源网络全栈详解 从DPDK到OpenFlow
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
6e95b.png)
最全的Linux教程,Linux从入门到精通
======================
-
linux从入门到精通(第2版)
-
Linux系统移植
-
Linux驱动开发入门与实战
-
LINUX 系统移植 第2版
-
Linux开源网络全栈详解 从DPDK到OpenFlow
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!