Docker 使用Dockerfile创建镜像

news/2025/1/12 2:04:10/

创建并且生成镜像

在当前目录下创建一个名为Dockerfile文件

vi Dockerfile

填入下面配置

# 使用 CentOS 作为基础镜像
FROM centos:7# 设置工作目录
WORKDIR /app# 复制项目文件到容器中
COPY bin/ /app/bin/
COPY config/ /app/config/
COPY lib/ /app/lib/
COPY plugin/ /app/plugin/
COPY resource/ /app/resource/
COPY wall.jar /app/wall.jar
COPY startup.sh /app/startup.sh
COPY stop.sh /app/stop.sh# 设置 start.sh 脚本为可执行
RUN chmod +x /app/startup.sh# 设置容器启动时执行的命令
CMD ["./startup.sh"]

注意,第一行 FROM centos:7 为官方基础镜像,可以为mysql,也可以为jdk

构建镜像

docker build -t 镜像名字 .

注意后面那个.这个标识当前根目录下的,如果是其他目录则是./test

在这里插入图片描述
查看镜像

docker imeages

在这里插入图片描述
运行该镜像

docker run wall

在没有启动镜像时临时进入镜像

找到需要进入的镜像的ID或名称,然后使用以下命令创建一个临时容器,并进入该容器

docker run -i --rm 镜像名称或ID /bin/bash

在这里插入图片描述

没有启动镜像时修改镜像内容

进入镜像

docker run -it --entrypoint /bin/bash <image_name>

提交镜像信息

docker commit <container_id_or_name> <new_image_name>

创建一个基于centos和mysql和jdk1.8的Dockerfile镜像

# 使用 CentOS 作为基础镜像
FROM centos:7# 设置维护者信息
LABEL maintainer="yourname@example.com"# 删除原有的 CentOS-Base.repo 并添加新的阿里云镜像源
RUN rm -f /etc/yum.repos.d/CentOS-Base.repo && \echo "[base]" > /etc/yum.repos.d/CentOS-Base.repo && \echo "name=CentOS-\$releasever - Base" >> /etc/yum.repos.d/CentOS-Base.repo && \echo "baseurl=http://mirrors.aliyun.com/centos/\$releasever/os/\$basearch/" >> /etc/yum.repos.d/CentOS-Base.repo && \echo "gpgcheck=1" >> /etc/yum.repos.d/CentOS-Base.repo && \echo "gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7" >> /etc/yum.repos.d/CentOS-Base.repo && \echo "[updates]" >> /etc/yum.repos.d/CentOS-Base.repo && \echo "name=CentOS-\$releasever - Updates" >> /etc/yum.repos.d/CentOS-Base.repo && \echo "baseurl=http://mirrors.aliyun.com/centos/\$releasever/updates/\$basearch/" >> /etc/yum.repos.d/CentOS-Base.repo && \echo "gpgcheck=1" >> /etc/yum.repos.d/CentOS-Base.repo && \echo "gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7" >> /etc/yum.repos.d/CentOS-Base.repo && \echo "[extras]" >> /etc/yum.repos.d/CentOS-Base.repo && \echo "name=CentOS-\$releasever - Extras" >> /etc/yum.repos.d/CentOS-Base.repo && \echo "baseurl=http://mirrors.aliyun.com/centos/\$releasever/extras/\$basearch/" >> /etc/yum.repos.d/CentOS-Base.repo && \echo "gpgcheck=1" >> /etc/yum.repos.d/CentOS-Base.repo && \echo "gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7" >> /etc/yum.repos.d/CentOS-Base.repo && \echo "[centosplus]" >> /etc/yum.repos.d/CentOS-Base.repo && \echo "name=CentOS-\$releasever - Plus" >> /etc/yum.repos.d/CentOS-Base.repo && \echo "baseurl=http://mirrors.aliyun.com/centos/\$releasever/centosplus/\$basearch/" >> /etc/yum.repos.d/CentOS-Base.repo && \echo "gpgcheck=1" >> /etc/yum.repos.d/CentOS-Base.repo && \echo "gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7" >> /etc/yum.repos.d/CentOS-Base.repo# 清理 YUM 缓存并更新缓存
RUN yum clean all && \yum makecache# 更新并安装必要的软件包
# RUN yum -y update && \
#     yum -y install wget && \
#     yum -y install gcc && \
#     yum -y install libaio && \
#     yum -y install epel-release && \
#     yum -y install java-1.8.0-openjdk && \
#     yum -y install mysql57-server# 更新系统
RUN yum -y update# 安装 wget
RUN yum -y install wget# 安装 gcc
RUN yum -y install gcc# 安装 libaio
RUN yum -y install libaio# 安装 epel-release
RUN yum -y install epel-release# 安装 Java 1.8
RUN yum -y install java-1.8.0-openjdk# 安装 MySQL 5.7 官方仓库
# RUN wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm && \
#    rpm -ivh mysql57-community-release-el7-11.noarch.rpm# 导入 MySQL GPG 公钥
# RUN rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql# 安装 MySQL 5.7
# RUN yum -y install mysql-community-server# 安装 MariaDB
RUN yum -y install mariadb-server# 设置 JAVA_HOME 环境变量
ENV JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
ENV PATH=$JAVA_HOME/bin:$PATH# 创建目录并设置工作目录
WORKDIR /data# 暴露 MySQL 默认端口 3306
EXPOSE 3306# 启动 MySQL 服务
CMD service mariadb start && \tail -f /dev/null

http://www.ppmy.cn/news/1562380.html

相关文章

【FPGA】时序约束与分析

设计约束 设计约束所处环节&#xff1a; 约束输入 分析实现结果 设计优化 设计约束分类&#xff1a; 物理约束&#xff1a;I/O接口约束&#xff08;例如引脚分配、电平标准设定等物理属性的约束&#xff09;、布局约束、布线约束以及配置约束 时序约束&#xff1a;设计FP…

腾讯云AI代码助手编程挑战赛-可视化飞线图

文章目录 作品简介项目实现了以下核心功能&#xff1a; 技术架构前端架构 实现过程 项目代码html 部分js 对数据进行清洗 效果展示 作品简介 本项目是借助腾讯云AI代码助手编写的基于ECharts库开发的交互式数据可视化工具。项目通过飞线图的形式&#xff0c;直观展示中国地图上…

汽车扶手屏里的FPC应用有哪些?【新立电子】

汽车扶手屏作为现代汽车内饰设计的一大亮点&#xff0c;通常被安装在座椅扶手位置&#xff0c;其设计初衷是为了方便乘客在乘车过程中进行各种操作和控制。屏幕不仅具备触控功能&#xff0c;还支持语音控制、手势识别等多种交互方式&#xff0c;使得乘客可以更加轻松、直观地操…

数据结构:栈(Stack)和队列(Queue)—面试题(一)

目录 1、括号匹配 2、逆波兰表达式求值 3、栈的压入、弹出序列 4、最小栈 1、括号匹配 习题链接https://leetcode.cn/problems/valid-parentheses/description/ 描述&#xff1a; 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] …

uni-app无限级树形组件简单实现

因为项目一些数据需要树形展示&#xff0c;但是官网组件没有。现在简单封装一个组件在app中使用&#xff0c;可以无线嵌套&#xff0c;展开&#xff0c;收缩&#xff0c;获取子节点数据等。 简单效果 组件TreeData <template><view class"tree"><te…

springBoot整合ELK Windowsb版本 (elasticsearch+logstash+kibana)

springBoot整合ELK Windowsb版本 【elasticsearchlogstashkibana】 下载软件启动服务1、elasticsearch2、kibana3、logstash 集成springboot1、添加依赖2、在logback.xml添加相关配置3、修改logstash 配置4、重启logstash 最后测试 下载软件 elasticsearch 官网 https://www.…

git提交

基本流程&#xff1a;新建分支 → 分支上开发(写代码) → 提交 → 合并到主分支 拉取最新代码因为当前在 master 分支下&#xff0c;你必须拉取最新代码&#xff0c;保证当前代码与线上同步&#xff08;最新&#xff09;&#xff0c;执行以下命令&#xff1a;bashgit pull orig…

基于Linux环境的进度条实现

文章目录 前言&#x1f4da;一、预备知识&#x1f4d6;1.1 回车换行&#x1f4d6;1.2 缓冲区 &#x1f4da;二、倒计时&#x1f4d6;2.1 源代码&#x1f4d6;2.2 效果展示&#x1f4d6;2.3 注意事项&#xff1a; &#x1f4da;三、进度条&#x1f4d6;3.1 源代码&#x1f4d3;p…