docker安装gitlab,nginx,jenkins,redis集群,mysql

服务器是centos 7

安装docker

1.yum install -y yum-utils device-mapper-persistent-data lvm2 安装必要的一些工具包
2.yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 设置docker下载仓库地址
3.yum list docker-ce --showduplicates | sort -r 列出docker的版本
4.#install指定版本的docker
yum install docker-ce-18.06.3.ce

docker安装gitlab

  1. 创建gitlab的宿主主机的映射文件夹
    mkdir -p /software/gitlab/config mkdir -p /software/gitlab/logs mkdir -p /software/gitlab/data
    2.docker pull gitlab 获取gitlab镜像
    3.#执行docker run命令启动gitlab容器
docker run --detach \
  --hostname gitlab.office2.com \
  --publish 9443:443 --publish 9980:80 --publish 9922:22 \
  --name gitlab \
  --restart always \
  --volume /software/gitlab/config:/etc/gitlab \
  --volume /software/gitlab/logs:/var/log/gitlab \
  --volume /software/gitlab/data:/var/opt/gitlab \
  --privileged=true \
  gitlab/gitlab-ce:latest

-d:后台运行
-p:将容器内部端口向外映射
–name:命名容器名称
-v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录
vim /software/gitlab/config/gitlab.rb 修改gitlab的一些配置
external_url:修改为域名访问
gitlab_rails[‘gitlab_ssh_host’]= ‘域名’
gitlab_rails[‘gitlab_shell_ssh_port’] = 端口

#查看tcp协议的开发端口
netstat -ntpl

docker安装nginx

  1. #创建nginx的映射配置文件夹
    mkdir -p /software/master-nginx/{conf,conf.d,html,logs,cert}
    2.创建nginx的docker容器
docker run --name master-nginx -d \
-p 80:80  -p 443:443 \
-v /etc/localtime:/etc/localtime \
-v /software/master-nginx/cert:/etc/nginx/cert \
-v /software/master-nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /software/master-nginx/html:/usr/share/nginx/html \
-v /software/master-nginx/conf.d:/etc/nginx/conf.d \
-v /software/master-nginx/logs:/var/log/nginx nginx

注意的点:docker安装nginx监听的是80端口,然后需要修改nginx.conf文件,转发的时候需要填上服务器的内网ip或者容器ip
安装的时候记得同步宿主主机的时区,不然nginx打印的日志时区会出现时区不对的情况
cert目录是放nginx的ssl证书

docker安装jenkins

1.获取jenkins镜像

docker pull jenkinsci/blueocean 

2.跑jenkins的docker镜像

docker run \
  -u root \
  -d \
  -p 9090:8080 \
  -p 51000:50000 \
  --name jenkins-blue \
  -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai \
  -v /etc/localtime:/etc/localtime \
  -v /software/jenkins:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  jenkinsci/blueocean

-v /var/run/docker.sock:/var/run/docker.sock \ 这个很重要,可以通过jenkins
-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai \设置jvm的时区,不然时区会不正常
-v /etc/localtime:/etc/localtime \与宿主主机的时间同步
创建或者启动外部的docker容器

docker安装redis集群

1.创建集群文件夹

mkdir redis-cluster
cd redis-cluster
mkdir redis-cluster.tmpl

redis-cluster.tmpl的内容如下

port ${PORT} #端口
protected-mode no #关闭保护模式,需要外网访问需要关闭
requirepass 123456 #设置密码 
cluster-enabled yes #是否集群模式
cluster-config-file nodes.conf #集群节点配置
cluster-node-timeout 5000 #超时时间
cluster-announce-ip 服务器内网ip #docker安装的时候需要配置的
cluster-announce-port ${PORT} #端口
cluster-announce-bus-port 1${PORT} #集群通信端口
appendonly yes #是否持久化

2.根据模板文件执行命令创建文件夹

这种方式不绑定容器ip
for port in `seq 7001 7006`; do \
  mkdir -p ./${port}/conf \
  && PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf \
  && mkdir -p ./${port}/data; \
done
这种方式绑定容器的固定ip,从11-16
for port in `seq 7001 7006`; do \
  base=6990 \
  && ip=$[port-base] \
  && mkdir -p ./${port}/conf \
  && PORT=${port} TEMP=${ip} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf \
  && mkdir -p ./${port}/data; \
done

3.执行命令创建redis 的docker容器

这种方式是指定网络模式为host
for port in `seq 7001 7006`; do \
  docker run -d -ti \
  -v /software/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
  -v /software/redis-cluster/${port}/data:/data \
  --restart always --name redis-${port} --net host \
  --sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf; \
done
这种方式网络模式为桥接模式,并且固定容器的ip
for port in `seq 7001 7006`; do \
  base=6990
  myips=$[port-base]
  docker run -d -ti \
  -v /software/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
  -v /software/redis-cluster/${port}/data:/data \
  --restart always --name redis-${port} --net my-net --ip 172.18.0.${myips} \
  --sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf; \
done

3.#进入redis容器内部
docker exec -it redis-7001 bash
执行如下命令:

redis-cli -a 1234565 --cluster create \
172.18.0.11:7001 \
172.18.0.12:7002 \
172.18.0.13:7003 \
172.18.0.14:7004 \
172.18.0.15:7005 \
172.18.0.16:7006 \
--cluster-replicas 1

以集群模式连接某个点
redis-cli -c -h 172.18.0.11 -p 7001 -a 123456
#查看集群状态
cluster info
#查看集群节点
cluster nodes
这里我采用的安装方式是创建了六个redis容器,并且采用网络模式是桥接模式,绑定固定的容器ip。然后用再创建一个nginx容器做转发

docker安装mysql数据库

1.搜索镜像

docker search mysql

2.拉取镜像

docker pull mysql

3.构建容器命令

docker run -p 3306:3306 --name dev-mysql \
-v /etc/localtime:/etc/localtime \
-v /software/dev-mysql/conf:/etc/mysql/conf.d \
-v /software/dev-mysql/logs:/logs \
-v /software/dev-mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=xxxxx \
-d mysql --lower_case_table_names=1

4.mysql8版本,一但mysql正式运行,就不能再设置忽略大小写了,强行设置会导致mysql服务启动不了,所以需要在最后加上–lower_case_table_names=1,启动的时候忽略大小写
5.安装好了之后,进入mysql容器内部

docker exec -it dev-mysql
mysql -u root -p

连接数据库之后要执行

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'XXXX';
flush privileges;

需要开启数据库远程连接并更改数据库密码的加密规则,不然用工具无法连接,会报错

docker常用命令

docker create //创建容器
docker run //相当于 create和start的集合命令
docker stop //停止容器
docker start //启动容器
docker restart //重启容器
docker rm //删除容器
docker rmi //删除镜像

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值