阿里云CoreOs镜像下使用Docker搭建Jenkins+Tomcat+Mysql环境

共享存储容器创建

cd ~
mkdir sqlfile
mkdir webapps
rm -r jenkins_home
mkdir jenkins_home
groupadd -g 1000 jenkins
useradd -u 1000 -g jenkins jenkins
chown -R 1000:1000 webapps
chown -R 1000:1000 jenkins_home
docker rm shrVol 
docker create --name shrVol -v /root/webapps:/usr/local/tomcat/webapps \
			     -v /root/sqlfile:/usr/local/sqlfile \
			     -v /root/jenkins_home:/var/jenkins_home \
			     busybox
  • 为了方便在各容器间共享文件,我们在这里专门创建了一个共享容器。
  • 在以上shell命令中,在宿主机的home目录下,分别创建用于共享的sqlfile、webapps、jenkins_home等三个子目录,用来存放SQL脚本、Tomcat工作目录、Jenkins工作目录。1
  • 由于Jenkins的Docker镜像默认用户和用户组的id和名称均为1000和jenkins,为接下来的Jenkins容器里的默认账户可以完全控制webapps、jenkins_home两个目录2,在宿主机上创建了相应的用户和用户组。
  • 接着创建名为shrVol的共享存储Docker容器并将要共享的目录映射到其上。3

Jenkins容器创建

docker stop jenkins
docker rm jenkins
docker run -d --name jenkins -p 8080:8080 --volumes-from shrVol jenkins/jenkins
cat jenkins_home/secrets/initialAdminPassword
  • 创建名为jenkins的Docker容器并立即动行,将宿主机的8080端口映射到容器的8080端口并挂载存储容器shrVol。
  • cat命令用于获取Jenkins首次启动后的初始密码。4

MySQL容器创建5

docker stop mysql
docker rm mysql
docker run --name mysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --volumes-from shrVol mysql
  • 这里要注意的是,初次启动时,记得用 -e 参数给容器加上MYSQL_ROOT_PASSWORD这个说明root账号初始密码的环境变量
vi /sqldfiles/my.cnf
default_authentication_plugin=mysql_native_password
docker exec -it mysql bash
cp /usr/local/sqlfile/my.cnf  /etc/mysql/
exit
  • 编辑my.cnf文件,将第二行从上文中复制出来,拷入其中,更改默认的身份认证插件。
  • 通过docker的 exec 命令进入容器的bash终端,将共享容器中编辑好my.cnf文件复制到/etc/mysql/目录下,然后退出。
update user set plugin='mysql_native_password';
  • 或者直接进入到数据库中,修改plugin参数为mysql_native_password,并且可以用例如source /usr/local/sqlfile/bak.sql命令,在选定当前数据库后从名为bak.sql的备份文件中恢复数据库。
docker restart mysql
  • 重启MySQL容器,使配置更改生效。

Tomcat容器创建

docker stop tomcat
docker rm tomcat
docker run -d --name tomcat -p 8888:8080 --volumes-from shrVol tomcat
  • -d 参数的意思是不将名为tomcat的容器的进程捆绑到当前终端。

  1. 这里的rm -rf命令是用以通过复制粘贴来快速重建目录,下同。 ↩︎

  2. Jenkins构建完成后将会按配置把打好的包由jenkins_home复制到webapps相应子目录里并由Tomcat容器执行。 ↩︎

  3. 这里选用busybox镜像是因为占用较小。 ↩︎

  4. 前两行是方便复制粘贴使用,下同。 ↩︎

  5. 其中更改MySQL数据库密码插件过程可以直接跳过,这里配置只为测试方便才改为更不安全的原始插件和本文的完整性。 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值