Docker搭建CI/CD工具详解

**

一、无网络搭建docker环境

**
https://www.jianshu.com/p/15e1fb009e9e
由于公司在做一些私有云平台构建,所以会出现在没有网络的情况下搭建环境,经过测试整个流程可以进行搭建docker环境的。
无网络服务器安装docker

  1. 先在本机下载docker离线包选择docker-18.06.1-ce.tgz https://download.docker.com/linux/static/stable/x86_64/
  2. 使用rz将离线包上传到服务器上,tar -xvf docker-18.06.1-ce.tgz进行解压
  3. 将解压的docker文件拷贝 cp docker/* /usr/bin/
  4. 添加配置vim /etc/systemd/system/docker.service,配置如下:
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target

文件进行添加权限,重载配置并启动docker

 chmod +x /etc/systemd/system/docker.service #添加文件权限并启动docker
 systemctl daemon-reload #重载unit配置文件
 systemctl start docker #启动Docker
 systemctl enable docker.service #设置开机自启
  1. 验证docker启动状态
 systemctl status docker #查看Docker状态

备注:在安装docker过程中,docker网桥会自动添加。如果启动异常,尝试手动添加网桥。

   brctl addbr docker0 ip addr add 172.17.0.1/16 dev docker0 ip link set dev docker0 up systemctl restart docker

二、安装docker

http://www.imooc.com/article/282731

环境准备:

Ubuntu 64-bit系统

Kernel 3.10+

(1)检查系统的内核版本,返回的值大于3.10即可

命令:uname -r

(2)使用sudo或root权限的用户登入中端

(3)保证apt-get是最新版本的,执行如下命令:

命令:apt-get update

(3)安装docker:

命令:apt-get install -y docker.io

用此命令安装的可能不是docker的最新版本

要想安装docker的最新版本可以使用如下命令:

命令:curl -s https://get.docker.com | sh

(4)安装完成后,检查是否安装成功,执行如下命令:

命令:docker version

说明docker已经安装成功!

如果执行docker version命令后,看不到Server部分,说明docker服务命令启动,可以执行如下命令启动docker服务:

命令:service docker start

之后再次执行docker version命令,就能查看到相关信息。

三、docker打包跨机器迁移镜像-实例Instance

导出:

docker save f8908be1963b > /data/nginx.img
scp nginx.img 10.6.7.13:/data/
scp nginx.img 10.6.7.14:/data/

导入:

[root@zabbix609 data]# docker load < nginx.img
docker images
docker tag f8908be1963b nginx:latest
docker images |grep nginx

四、在docker安装jenkins

https://www.jianshu.com/p/12c9a9654f83

1.pull一个jenkins镜像 docker pull jenkins/jenkins:lts;
这个是安装最新版的jenkins,如果安装旧版本,很多插件安装不上,docker环境下升级又比较麻烦。

2.查看已经安装的jenkins镜像 docker images;
查看是否是最新版 docker inspect ba607c18aeb7

3.创建一个jenkins目录 mkdir /home/jenkins_home;

4.启动一个jenkins容器 docker run -d --name jenkins_01 -p 8081:8080 -v /home/jenkins_01:/home/jenkins_01 jenkins/jenkins:lts ;

5.查看jenkins服务 docker ps | grep jenkins;

6.启动服务端 。localhost:8081;

7.进入容器内部docker exec -it jenkins_01 bash;

8.执行:cat /var/jenkins_home/secrets/initialAdminPassword,得到密码并粘贴过去;

9.输入密码之后,重启docker镜像 docker restart {CONTAINER ID},安装完毕。

五、Docker-OpenGrok安装

  1. 安装opengrok:
sudo docker pull scue/docker-opengrok
  1. 生成索引并启动:
sudo docker run --rm \
    -v /path/to/source:/src \
    -v /path/to/opengrok_data:/data \
    -p 8888:8080 \
    scue/docker-opengrok

然后可以通过http://localhost:8888/source进行访问。
其中/path/to/source为宿主机源码weizh位置,而/path/to/opengrok_data为宿主机cu存放配置、日志、生成的数据库文件的位置。
如果需要后台运行,加上参数-d即可。

  1. 更新索引:
sudo docker exec ${CONTAINER_NAME} OpenGrok index /src

环境设置:

  1. 查看镜像:
$ sudo docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
scue/docker-opengrok   latest              93c3cb01d8cb        2 years ago 387MB

2.查看容器:

$ sudo docker ps
CONTAINER ID        IMAGE                  COMMAND               CREATED              STATUS              PORTS                    NAMES
b80b902c11eb        scue/docker-opengrok   "/scripts/start.sh"   About a minute ago   Up About a minute   0.0.0.0:8888->8080/tcp   trusting_hermann

3.停止容器:

docker stop b80b902c11eb

六、Mediawiki

启动sql docker:

docker run -d --name mediawiki-mysql -e MYSQL_ROOT_PASSWORD=abc@123 mysql/mysql-server:5.7

进入docker:

docker exec -it mediawiki-mysql /bin/bash

设置sql:

#bash-4.2# 
mysql -uroot -p
......
#mysql> 
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'abc@123' WITH GRANT OPTION;
#mysql> 
FLUSH PRIVILEGES;

启动docker:

docker run --name facethink-mediawiki --link mediawiki-mysql:mysql -p 8001:80 -e MEDIAWIKI_DB_PASSWORD=abc@123 -d wikimedia/mediawiki:1.30.0-wmf4

你可能感兴趣的:(Docker搭建CI/CD工具详解)