学习了Docker的入门篇和进阶篇,简单搞一个CI/CD的实战!
1. 安装Docker
#1. 卸载旧版本
$ yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
#2. 需要的安装包
$ yum install -y yum-utils
#3. 设置镜像的仓库(阿里云的,十分的快!推荐)
$ yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#4. centos 8更新yum软件包索引
$ yum makecache 或者 dnf makecache
#4. 安装docker docker-ce 社区版(官方推荐,一般使用的也是ce) 而ee是企业版
$ yum install docker-ce docker-ce-cli containerd.io
#5. 启动docker
$ systemctl start docker
#6. 使用docker version查看是否按照成功(如下图)
$ docker version
2. 安装并配置GitLab
2.1 Docker安装gitlab
1. 查看端口是否占用
netstat -tunlp | grep 80 | grep 22 | grep 443
2. 拉取镜像并运行
sudo docker run -d \
--hostname 129.204.*.** \
-p 4430:443 -p 800:80 -p 220:22 \
--name gitlab \
--restart always \
-v /usr/local/docker/gitlab/config:/etc/gitlab \
-v /usr/local/docker/gitlab/logs:/var/log/gitlab \
-v /usr/local/docker/gitlab/data:/var/opt/gitlab \
--shm-size 256m \
gitlab/gitlab-ce:latest
3. 重置登录密码
查看gitlab容器:docker ps
进入gitlab容器内部:docker exec -it gitlab /bin/bash
打开控制台(耐心等待一会):gitlab-rails console -e production
找到用户:user = User.where(id: 1).first
重置密码:user.password = '12345678'
确认密码:user.password_confirmation = '12345678'
保存:user.save!
退出控制台:exit
退出容器:ctrl+p+q(Mac:control+p+q)
访问:http://129.204.*.**:800/ 使用 root == 12345678 登录成功!
2.2 配置GitLab
2.2.1 配置中文显示(配置完别忘记保存奥!保存后刷新生效)
2.2.2 创建组
2.2.3 创建项目
观察空仓库给出的指令,可以发现一个问题:
http协议的地址不是按照我们启动时设定的800,为什么?使用该http协议的地址进行浏览器访问报404,怎么解决?
原因:容器启动时,官方默认是80:80,但我们更改了端口映射800:80,所以需要配置一下。
解决:配置ssh协议地址和http协议地址
4. 配置ssh协议地址和http协议地址
4.1 更改gitlab.rb的ssh协议配置
# 进入容器
docker exec -it gitlab /bin/bash
# 编辑
vim /etc/gitlab/gitlab.rb
# 配置ssh协议所使用的访问地址和端口;端口是run时22端口映射的220端口
gitlab_rails['gitlab_ssh_host'] = '129.204.7.139'
gitlab_rails['gitlab_shell_ssh_port'] = 220
# 保存退出
wq
# 配置生效
gitlab-ctl reconfigure
4.2 配置http协议所使用的访问地址(跟4.1,此时还在容器内部)
# 编辑
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
# 配置ssh协议所使用的访问地址和端口;端口是run时22端口映射的220端口
## GitLab settings
gitlab:
## Web server settings (note: host is the FQDN, do not include http://)
host: 129.204.7.139
port: 800 # 更改成自己的端口
https: false
# 保存退出
wq
# 重启生效
gitlab-ctl restart
此刻,刷新 http://129.204.*.**:800/,http协议和ssh协议的ip后面都加上了端口号,浏览器访问http协议可正常访问gitlab代码仓库。
完成代码的关联后就可以愉快的使用私服Gitlab仓库了!
3. Docker 安装Jenkins
3.1 Docker安装Jenkins
sudo docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -u root \
-v /usr/local/docker/jenkins_home:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker \
jenkins/jenkins:latest-jdk8
坐等启动成功,http://129.204.*.**:8080/
3.2 查看解锁密码
第一种方法(服务器):
cat /usr/local/docker/jenkins_home/secrets/initialAdminPassword
第二种方法(容器内):
docker exec -it jenkins /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword
3.3 安装插件
建议选择Install suggested plugins,安装过程大概半个多小时。