Docker安装Mysql、Jmeter、Jenkins、Redis、gitlab
安装Mysql
查看可用的 MySQL 版本
访问 MySQL 镜像库地址:https://hub.docker.com/_/mysql?tab=tags
可以通过 Sort by 查看其他版本的 MySQL,默认是最新版本 mysql:latest 。
拉取 MySQL 镜像
这里我们拉取官方的最新版本的镜像:
docker pull mysql:8.0.18
查看本地镜像
使用以下命令来查看是否已安装了 mysql:
docker images
运行容器
安装完成后,我们可以使用以下命令来运行 mysql 容器:
docker run -itd --name=mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
参数说明:
- -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
- MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。
查看容器运行状态
docker ps
进入mysql容器
docker -h localhost -u root -p
登录mysql
mysql -h localhost -u root -p
授权root用户在其他机器上运行
grant all on *.* to 'root'@'%';
如果是mysql8版本,不支持动态修改密码验证,需要更新root用户密码
alter user 'root'@'%' identified with mysql_native_password by '123456';
刷新权限
flush privileges;
Navicat测试连接mysql
安装Jmeter
下载jmeter
https://mirrors.tuna.tsinghua.edu.cn/apache/jmeter/binaries/
wget https://mirrors.tuna.tsinghua.edu.cn/apache/jmeter/binaries/apache-jmeter-5.4.tgz
创建Dockerfile
vi Dockerfile
编辑
FROM java:8
ENV http_proxy ""
ENV https_proxy ""
RUN mkdir /jmeterdocker
RUN mkdir -p /jmeterdocker/test
RUN mkdir -p /jmeterdocker/test/input/jmx
RUN mkdir -p /jmeterdocker/test/input/testdata
RUN mkdir -p /jmeterdocker/test/report/html
RUN mkdir -p /jmeterdocker/test/report/jtl
RUN mkdir -p /jmeterdocker/test/report/outputdata
RUN cd /jmeterdocker
ENV JMETER_VERSION=5.4
ENV JMETER_HOME=/jmeterdocker/apache-jmeter-${JMETER_VERSION}
ENV JMETER_PATH=${JMETER_HOME}/bin:${PATH}
ENV PATH=${JMETER_HOME}/bin:${PATH}
COPY apache-jmeter-${JMETER_VERSION}.tgz /jmeterdocker
RUN cd /jmeterdocker \
&& tar xvf apache-jmeter-5.4.tgz \
&& rm apache-jmeter-5.4.tgz
运行Dockerfile
docker build -t jmeter_test:v1 .
创建并运行容器
docker run --name="[REPOSITORY]" --net="host" -v /tmp/jmeterspace/test/input/jmx:/jmeterdocker/test/input/jmx \
-v /tmp/jmeterspace/test/input/testdata:/jmeterdocker/test/input/testdata \
-v /tmp/jmeterspace/test/report/html:/jmeterdocker/test/report/html \
-v /tmp/jmeterspace/test/report/jtl:/jmeterdocker/test/report/jtl \
-v /tmp/jmeterspace/test/report/outputputdata:/jmeterdocker/test/report/outputdata \
-it -d [IMAGE ID]
运行容器
docker start [CONTAINER ID]
进入容器
docker exec -it [CONTAINER ID] /bin/bash
参考学习文档:https://www.jianshu.com/p/69f1aa64a92b
安装Jenkins
拉取镜像
我这里安装的版本是 2.222.3-centos ,可以去这里获取你需要的版本: https://hub.docker.com/_/jenkins?tab=tags
docker pull jenkins/jenkins:2.222.3-centos
创建本地数据券
我这里映射本地数据卷的路径为/data/jenkins_home/,你想放别的地方可以自行修改
mkdir -p /data/jenkins_home/
需要修改下目录权限,因为当映射本地数据卷时,/data/jenkins_home/目录的拥有者为root用户,而容器中jenkins用户的 uid 为 1000。
chown -R 1000:1000 /data/jenkins_home/
创建容器
docker run -d --name jenkins -p 8040:8080 -p 50000:50000 -v /data/jenkins_home:/var/jenkins_home jenkins/jenkins:2.222.3-centos
- -d 标识是让 docker 容器在后台运行
- --name 定义一个容器的名字,如果没有指定,那么会自动生成一个随机数字符串当做UUID
- -p 8040:8080 端口映射,我本地的8080被占用了,所以随便映射了一个8040
- -p 50000:50000 端口映射
- -v /data/jenkins_home:/var/jenkins_home 绑定一个数据卷,/data/jenkins_home是刚才创建的本地数据卷
报错:
[root@localhost /]# docker run -it ubuntu /bin/bash
WARNING: IPv4 forwarding is disabled. Networking will not work.
解决方式:
第一步:在宿主机上执行echo "net.ipv4.ip_forward=1" >>/usr/lib/sysctl.d/00-system.conf
echo "net.ipv4.ip_forward=1" >>/usr/lib/sysctl.d/00-system.conf
第二步:重启network和docker服务
[root@localhost /]# systemctl restart network && systemctl restart docker
systemctl restart network && systemctl restart docker
第三步:验证是否成功
docker start jenkins
配置Jenkins
打开Jenkins
通过浏览器访问 http://本地IP:8040/(注意替换成你自己的IP和端口)进入初始页,如果 Jenkins 还没有启动完成,会显示如下内容
这里要求输入初始的管理员密码,根据提示密码在/var/jenkins_home/secrets/initialAdminPassword这个文件中,注意这个路径是 Docker 容器中的,所以我们通过如下命令获取一下
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
切换成中文
安装插件:
系统管理 / 插件管理,打开“可选插件”,选择locale 插件,点击“下载待重启后安装“按钮安装。
勾选“安装完成后重启Jenkins“
系统管理
Manage Jenkins / Configure System找到Locale
输入Default Language为zh_CN (注意:不是zh-CN)
勾选“Ignore browser preference and force this language to all users“
Save
如果以上没用
变成中文成功!
安装Redis
查看可用的 Redis 版本
访问 Redis 镜像库地址: https://hub.docker.com/_/redis?tab=tags
docker pull redis
# 或者
docker pull redis:rc-alpine3.12
查看redis镜像
docker images
运行容器
docker run -itd --name redis-test -p 6379:6379 redis
参数说明:
- -p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。
安装成功
docker ps
安装Gitlab
搜索gitlab镜像
docker search gitlab
创建gitlab容器
前置操作
由于是docker 镜像运行,所以我们需要把gitlab 容器的配置、数据、日子存到容器外面,将目录挂载到主机上先准备三个目录:
#切到srv目录
cd /srv
#创建gitlab文件夹
mkdir gitlab
cd gitlab
mkdir config logs data
创建容器
docker run -d -p 443:443 -p 9001:80 -p 8022:22 \
--name gitlab \
--restart always \
--privileged=true \
-v /srv/gitlab/config:/etc/gitlab \
-v /srv/gitlab/logs:/var/log/gitlab \
-v /srv/gitlab/data:/var/opt/gitlab \
-v /etc/localtime:/etc/localtime:ro \
gitlab/gitlab-ce
访问gitlab网站
http://ip:9001