jenkins加docker自动化部署

本文介绍了如何使用Docker快速部署Nexus2作为Maven仓库。通过搜索和下载docker.io/sonatype/nexus镜像,实现简单便捷的自动化部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统 阿里云centos7
内网ip 172.17.188.51
外网ip  59.110.157.77
防火墙关闭
因为服务器资源有限 一台服务器需要部署很多的服务 为了资源隔离所以采用docker容器的方式让各个服务分开
购买的阿里云内存就2G 因为要部署很多应用 所以需要设置下交换分区swap来扩大内存 一般swap的大小为物理内存的2倍 所以我设置为4G
一、查看系统当前的分区情况:
>free -m
             total       used       free     shared    buffers     cached
Mem:           438        432          6          0          8        141
-/+ buffers/cache:        282        156
Swap:         0          0          0
二、创建用于交换分区的文件:如果要增加4G大小的交换分区,则命令写法如下,其中的 count 等于想要的块大小
只要建立/home目录就可以了 swap会自动建立
>dd if=/dev/zero of=/home/swap bs=block_size count=number_of_block
dd if=/dev/zero of=/home/swap bs=1024 count=4096000
2048000+0 records in
2048000+0 records out
2097152000 bytes (2.1 GB) copied, 60.4492 seconds, 34.7 MB/s
三、设置交换分区文件:
>mkswap /home/swap
四、立即启用交换分区文件:
>swapon /home/swap
五、若要想使开机时自启用,则需修改文件/etc/fstab中的swap行:
/home/swap swap swap defaults 0 0

[root@test ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           438        433          5          0          2     


267
-/+ buffers/cache:        163        275
Swap:         4047       1465       2581
首先安装docker centos7使用yum安装的docker版本为1.12
yum install -y docker
启动docker
service docker start
查看版本
docker -v
Docker version 1.12.6, build 88a4867/1.12.6
设置docker开机启动
[root@blogfroum ~]# chkconfig --level 123456 docker on
首先安装docker的web管理界面 个人比较喜欢shipyard 部署也简单
下载shipyard的镜像
docker pull rethinkdb && docker pull microbox/etcd && docker pull shipyard/docker-proxy && docker pull swarm && docker pull dockerclub/shipyard
查看下载的镜像
[root@blogfroum ~]# docker images
REPOSITORY                        TAG                 IMAGE ID            CREATED             SIZE
docker.io/swarm                   latest              7ecf8baf8eae        6 weeks ago         15.77 MB
docker.io/rethinkdb               latest              be24926bde9a        9 weeks ago         182.5 MB
docker.io/dockerclub/shipyard     latest              2ac2c13dfa84        17 months ago       61.36 MB
docker.io/shipyard/docker-proxy   latest              cfee14e5d6f2        20 months ago       9.464 MB
docker.io/microbox/etcd           latest              6aef84b9ec5a        2 years ago         17.86 MB
创建存放脚本的目录
[root@blogfroum shipyard]# mkdir /usr/local/software/shipyard
[root@blogfroum shipyard]# cd /usr/local/software/shipyard/
shipyard已经提供了安装脚本 直接运行脚本就可以进行安装 首先下载脚本 修改一些必要参数
[root@blogfroum shipyard]# wget https://shipyard-project.com/deploy
[root@blogfroum shipyard]# grep -n shipyard:latest deploy
[root@blogfroum shipyard]# sed -i 's/shipyard\/shipyard:latest/dockerclub\/shipyard:latest/g' deploy
脚本默认映射8080端口 如果想要修改端口 可以修改脚本
vim deploy
找到SHIPYARD_PORT
SHIPYARD_PORT=${PORT:-8080}
修改为
SHIPYARD_PORT=${PORT:-9000}
启动脚本
sh deploy
等待安装好
因为是阿里云所以还需要在阿里云上开放对应的端口

之后可以通过浏览器访问了




用户名默认为
### Jenkins、GitLab 和 Docker自动化部署最佳实践 #### 1. 安装与环境准备 为了实现基于 Jenkins、GitLab 和 Docker自动化部署流程,首先需要完成必要的软件安装和配置。这包括安装 Docker 引擎以及设置 Jenkins 环境。 通过以下命令可以快速安装 Docker 引擎[^1]: ```bash sudo apt install docker-ce docker-ce-cli containerd.io ``` #### 2. 配置 Jenkins 容器 一旦 Docker 已经成功安装并运行,在实际操作中可能需要调整 Jenkins 容器内的默认镜像源以提高下载速度或解决网络问题。可以通过执行如下命令进入 Jenkins 容器内部进行自定义配置[^2]: ```bash docker exec -it jenkins bash ``` 此步骤允许管理员直接访问容器中的文件系统并对 `/etc/apt/sources.list` 或其他相关路径下的资源地址做出更改。 #### 3. 构建阶段:编译项目并生成可交付物 (Jar 文件) 当代码被推送到 GitLab 后,Jenkins 将会触发流水线作业来处理这些变更。其中一个重要环节就是将 Java 应用程序打包成 JAR 文件存放在特定的工作区目录下。例如: 假设项目的根目录位于 `/var/lib/jenkins/workspace/bootbase/` 中,则可以在该位置找到构建后的 jar 文件[^3]。 #### 4. 执行 Docker 命令序列 在获取到最新的应用程序包之后,接下来要做的就是在生产环境中更新正在运行的服务实例。为此通常遵循这样一个标准过程——停止旧版本服务 -> 删除过期容器及映像 -> 使用新版本重新创建并启动新的容器: ```bash cd /var/lib/jenkins/workspace/bootbase/ sudo docker stop bootbase || true sudo docker rm bootbase || true sudo docker rmi bootbase || true sudo docker build -t bootbase . sudo docker run -d -p 9527:9527 --name bootbase bootbase:latest ``` 上述脚本片段展示了如何利用 Docker CLI 来管理整个生命周期的操作链路。 #### 5. 整合通知机制增强用户体验 最后一步也是非常重要的一环,那就是向团队成员提供及时反馈信息以便他们能够跟踪每次发布的状态变化情况。这里推荐集成第三方通讯工具比如企业微信作为消息传递渠道之一。只需简单添额外的任务项即可达成目标[^4]: > **注意**: 此处省略了具体的 API 调用细节部分因为涉及到敏感数据保护原则不建议公开分享完整代码样例。 --- ### 总结 综上所述,采用 Jenkins 结合 GitLab 及 Docker 技术栈搭建 CI/CD 平台不仅简化了日常运维工作量而且显著提升了开发效率。同时引入即时通信功能进一步强协作沟通质量从而促进整体业务发展进程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值