安装docker
特别说明
Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。
Docker CE 分为 stable
test
和 nightly
三个更新频道。
官方网站上有各种环境下的 安装指南,这里主要介绍 Docker CE 在 CentOS上的安装。
卸载(可选)
如果之前安装过旧版本的Docker,可以使用下面命令卸载:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
安装yum工具
如果是虚拟机搭建!一定要连接网络!!!!!!!!
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 --skip-broken
设置更新本地镜像源
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
yum makecache fast
下载docker
yum install -y docker-ce
关闭防火墙后
Docker应用需要用到各种端口,逐一去修改防火墙设置。非常麻烦,因此建议大家直接关闭防火墙!
启动docker前,一定要关闭防火墙后!!
启动docker前,一定要关闭防火墙后!!
启动docker前,一定要关闭防火墙后!!
# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
启动docker
systemctl start docker # 启动docker服务
################## docker 其他命令 ##################
systemctl stop docker # 停止docker服务
systemctl restart docker # 重启docker服务
设置开机自启动 docker
systemctl enable docker # 开机自启动
配置镜像加速
docker官方镜像仓库网速较差,我们需要设置国内镜像服务:
参考阿里云的镜像加速文档:cr.console.aliyun.com/cn-hangzhou…
安装docker-compose
下载
如果下载速度慢,可以去github下载 github.com/docker/comp…
之后上传到/usr/local/bin/
目录也可以。
curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
修改文件权限
chmod +x /usr/local/bin/docker-compose
Base自动补全命令
记住喽!这里要对应你下载docker-compose的版本,可不敢直接复制!!!!!!!
curl -L https://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
如果上一步报错别急,修改自己的hosts文件:
echo "199.232.68.133 raw.githubusercontent.com" >> /etc/hosts
gitlab
创建文件夹
mkdir -p /home/docker/gitlab/config
mkdir -p /home/docker/gitlab/logs
mkdir -p /home/docker/gitlab/data
添加权限
chmod 777 /home/docker/gitlab/config
chmod 777 /home/docker/gitlab/logs
chmod 777 /home/docker/gitlab/data
启动镜像
docker run -d -p 443:443 -p 80:80 -p 22:22
--name gitlab-dev
--restart always
-v /home/docker/gitlab/config:/etc/gitlab
-v /home/docker/gitlab/logs:/var/log/gitlab
-v /home/docker/gitlab/data:/var/opt/gitlab
gitlab/gitlab-ce:latest
修改配置文件
找到external_url的位置替换成自己的服务器ip或者域名
# vim /home/docker/gitlab/config/gitlab.rb
external_url 'http://192.168.10.21'
添加gitlab的邮箱服务 (还是这个配置文件下)
# vim /home/docker/gitlab/config/gitlab.rb
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "fzn@163.com"
gitlab_rails['smtp_password'] = "xxxxxxxx"
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'fzn@163.com'
gitlab_rails['gitlab_email_display_name'] = 'gitlab-server'
需要你改的地方就是
gitlab_rails['smtp_user_name'] = "这里填你的邮箱地址"
gitlab_rails['gitlab_email_from'] = '这里填你的邮箱地址'
上面2个的地址必须一致,不然会报错的!!!!!!!
gitlab_rails['smtp_password'] = "xxxxxxxx" 这里的密码是你邮箱的授权码,不是你的登陆密码!
重启gitlab
# 进入容器
docker exec -it <gitlab容器id> bash
# 刷新gitlab 配置
gitlab-ctl reconfigure
gitlab-ctl status
# 退出容器的命令
exit
获取登陆密码
# 进入容器
docker exec -it <gitlab容器id> bash
# 获取密码
cat /etc/gitlab/initial_root_password
# 退出容器的命令
exit
登陆gitlab
我们配置的端口是80,所以直接输入你服务器的地址
账户名:root
密码:上面获取的密码
jenkins
创建文件夹
mkdir -p /home/docker/jenkins_home
添加权限
chmod 777 /home/docker/jenkins_home
启动
docker run -p 8080:8080 -p 5000:5000 --name jenkins --restart always \
-u root -v /home/docker/jenkins_home:/var/jenkins_home \
-v var/run/docker.sock:/var/run/docker.sock \
-d jenkins/jenkins:lts
登陆&安装推荐插件&创建用户
安装git
# yum -y install git
jenkins 配置docker
验证系统中是否有jenkins用户
[root@jenkins-server ~]# grep jenkins /etc/passwd
jenkins:x:997:995:Jenkins Automation Server:/var/lib/jenkins:/bin/false
验证系统中是否有docker用户及用户组
[root@jenkins-server ~]# grep docker /etc/group
docker:x:993:
添加jenkins用户到docker用户组
[root@jenkins-server ~]# usermod -G docker jenkins
[root@jenkins-server ~]# grep docker /etc/group
docker:x:993:jenkins
重启jenkins服务
[root@jenkins-server ~]# systemctl restart jenkins
添加登陆gitlab的配置
使用user password 登陆 gitlab 使用user password 登陆 部署服务器
安装插件
maven integration
git parameter
gitlab
Generic Webhook Trigger
ssh
全局工具配置
系统配置 ssh
harbor
去官网下载 (网速慢)
用wget下载 (网速快)
wget https://github.com/goharbor/harbor/releases/download/v2.4.3/harbor-online-installer-v2.4.3.tgz
解压
# tar xf harbor-offline-installer-v2.4.1.tgz -C /home
查看安装后的harbor
# cd /home
# ls
harbor
[root@harbor-server home]# cd harbor/
[root@harbor-server harbor]# ls
common.sh harbor.v2.4.1.tar.gz harbor.yml.tmpl install.sh LICENSE prepare
修改文件名
# mv harbor.yml.tmpl harbor.yml
修改配置文件
[root@harbor-server harbor]# vim harbor.yml
[root@harbor-server harbor]# cat harbor.yml
# Configuration file of Harbor
# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: 192.168.10.23 # 修改成自己的ip
# http related config
http:
# port for http, default is 80. If https enabled, this port will redirect to https port
port: 80 # 修改成自己的prot(端口占用的时候在修改)
# https related config
#https: 注释
# https port for harbor, default is 443
# port: 443 注释
# The path of cert and key files for nginx
# certificate: /your/certificate/path 注释
# private_key: /your/private/key/path 注释
下载依赖
./prepare
启动harbor
docker-compose -f /home/harbor/docker-compose.yml -d
验证是否启动成功
docker ps # 查看是否9个容器都启动了!!!!!
去所有服务器配置harbor库
insecure-registries 为自己harbor的地址
[root@jenkins-server ~]# vim /etc/docker/daemon.json
[root@jenkins-server ~]# cat /etc/docker/daemon.json
{
"insecure-registries": ["http://192.168.10.23"]
}
配置harbor后重启docker
systemctl restart docker
在项目中添加dockerfile 文件
FROM java:8 #java 项目依赖的jdk
COPY target/*.jar gateway.jar
ENV JAVA_OPTS="-XX:+UseG1GC"
ENTRYPOINT exec java $JAVA_OPTS -jar /gateway.jar
EXPOSE 9081
jenkins 添加任务单一maven项目
#!/bin/bash -ilex
source /etc/profile
docker build . -t 121.199.37.244:7070/library/gateway
docker login 121.199.37.244:7070 -u admin -p Harbor12345
docker push 121.199.37.244:7070/library/gateway
docker logout 121.199.37.244:7070
docker login 121.199.37.244:7070 -u admin -p Harbor12345
docker stop gateway |true
docker rm -f gateway |true
docker rmi 121.199.37.244:7070/library/gateway |true
docker pull 121.199.37.244:7070/library/gateway
docker run -d --name gateway -p 9081:9081 121.199.37.244:7070/library/gateway
执行脚本报错
docker command not found
# 进入jenkins 容器
docker exec -it jenkins_container_id bash
# 执行
apt-get update && apt-get install -y docker.io
# 或者在启动容器是加入挂在
docker run -v /var/run/docker.sock:/var/run/docker.sock
-v $(which docker):$(which docker)
-p 8080:8080 -p 50000:50000 jenkins/jenkins:lts
jenkins添加父子模块
clean install -pl eureka-server -am -amd -Dmaven.test.skip=true