docker-file镜像制作案例

该文详细介绍了如何制作一个包含Jenkins、Tomcat、Maven和Node.js的Docker镜像。首先,通过Dockerfile定义了镜像构建过程,包括安装和配置各种软件包,设置环境变量,然后解压并配置插件。接着,构建Docker镜像,并启动容器。最后,提到了如何进入容器进行进一步的配置,以及如何停止和删除容器及镜像。

jenkins docker镜像制作

软件包

链接:https://pan.baidu.com/s/1VZpse-vLFYsyWnhSu6u2gg 
提取码:4545 

1.创建工作目录

mkdir -p /data/soft &&  cd /data/soft
# 上传文件
略

2.jenkins-docker-file

# vi jenkins_dockerFile
FROM centos:7
MAINTAINER busl<1196869282@qq.com>
# 会自动解压到指定目录,不需要人为去解压
ADD openjdk-11+28_linux-x64_bin.tar.gz /data/soft/
ADD jenkins-tomcat-8.5.69.tar.gz /data/soft/
# 复制等下进入容器内配置好再解压
ADD jenkins-plugins.zip /data/soft/
# zip需要专门解压
ADD apache-maven-3.8.1-bin.zip /data/soft/
ADD node-v14.17.3-linux-x64.tar.xz /data/soft/
RUN chmod a+x /data/soft
RUN yum install -y unzip zip && cd /data/soft/ && unzip apache-maven-3.8.1-bin.zip
ENV MYPATH /data/soft
# 工作目录,进入容器的根目录
WORKDIR $MYPATH
ENV JAVA_HOME $MYPATH/jdk-11
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME $MYPATH/apache-tomcat-8.5.69
ENV CATALINA_BASH $MYPATH/apache-tomcat-8.5.69
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
# maven环境变量
ENV MAVEN_HOME $MYPATH/apache-maven-3.8.1
ENV PATH $PATH:$MAVEN_HOME/bin
# node环境变量
ENV NODEJS_HOME $MYPATH/node-v14.17.3-linux-x64
ENV PATH $PATH:$NODEJS_HOME/bin
RUN	npm install -y -g cnpm@6.0.0 --registry=https://registry.npm.taobao.org
EXPOSE 8080
WORKDIR $CATALINA_HOME/bin
RUN chmod a+x $CATALINA_HOME/bin/startup.sh
# 注意:tail -F ,这里如果用小写的f,启动容器的时候打印完日志后会退出,用大写-F容器才会停留
CMD $CATALINA_HOME/bin/startup.sh && tail -F $CATALINA_HOME/logs/catalina.out
# 新增jenkins_dockerFile
vi jenkins_dockerFile
# 构建douker镜像 
docker build -f ./jenkins_dockerFile  -t jenkins:2.403  .
# 或者
docker build -f /data/soft/jenkins_dockerFile -t jenkins:2.403 /data/soft
# 看到successful则代表打包成功
# 查看镜像
docker images

# 启动容器



# 访问,注意打开8080防火墙端口
ip:8080/jenkins
# 插件选择安装,点击无跳过插件安装->配置用户->开始使用
# 解压插件到指定目录

# 进入容器
docker exec -it jenkins /bin/bash
# 上传的插件压缩包 jenkins-plugins.zip 到 jenkins 默认目录 /root/.jenkins,然后执行一下命令将插件解压缩到 /root/.jenkins/plugins 目录
cd /data/soft && cp jenkins-plugins.zip /root/.jenkins/jenkins-plugins.zip && cd /root/.jenkins  && unzip -o jenkins-plugins.zip -d ./
# 退出容器
exit
# 停止 && 删除容器 && 删除镜像
docker stop jenkins && docker rm jenkins && docker rmi jenkins:2.403

### Docker Compose 文件格式和用法 #### YAML 文件结构 Docker Compose 使用基于 YAML 的文件来定义应用程序的服务、网络以及卷。`docker-compose.yml` 是主要配置文件,其中包含了多个部分和服务描述[^3]。 ```yaml version: '3' services: web: image: nginx ports: - "80:80" redis: image: redis ``` 此示例展示了最简单的 `docker-compose.yml` 文件版本声明、服务列表及其属性设置。每个服务项下可以指定镜像名称、端口映射等参数[^4]。 #### 版本号说明 在编 Docker Compose 文件时需指明使用的语法版本。不同版本之间存在差异,因此选择合适的版本非常重要。当前最新稳定版为 `3.x` 系列,在大多数情况下推荐使用该系列中的某个子版本作为起点[^1]。 #### 基础字段解释 - **version**: 定义所采用的 compose file 格式的具体版本。 - **services**: 描述构成整个应用的一组独立组件或微服务;每个条目代表一个单独的服务单元。 - **networks**: 可选字段,用来创建自定义网络以便更好地控制容器间的通信方式。 - **volumes**: 同样是非必需的部分,允许持久化数据存储于主机磁盘上而不随容器销毁而丢失。 #### 实际案例展示 假设要建立一个包含 Web 服务器 (Nginx) 和缓存数据库 (Redis) 的小型网站,则对应的 `docker-compose.yml` 如下所示: ```yaml version: '3' services: web: build: ./webapp command: python manage.py runserver 0.0.0.0:8000 volumes: - .:/code ports: - "8000:8000" depends_on: - db redis: image: "redis:alpine" db: image: postgres environment: POSTGRES_USER: user POSTGRES_PASSWORD: password ``` 上述例子中不仅有基础的服务定义还加入了更多细节比如构建上下文路径(`build`)、挂载本地目录到容器内(`volumes`)等功能增强型选项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值