编写DockerFile

将自己的项目或者环境通过Docker部署到服务器需要一下几个步骤:
  1. 打包项目或者环境

  2. 编写Dockerfile文件

  3. 运行Dockerfile文件,构建DockerImages镜像,将DockerImages存入DockerHub或者存入阿里云镜像仓库

  4. 服务器pull下DockerImages镜像(前提:DockerImages镜像push过仓库<DockerHub>/<aliyunImageRepos>)

  5. 通过镜像建立容器

  6. 启动容器,部署成功

这里面最重要的一环就是编写Dockerfile,如果编写得当,就可以利用现有资源节省服务器空间,不然会出现冗余环境。

DockerFile指令
复制代码
FROM    # 指示基础镜像,代表当前编写的环境在该指定镜像之上
MAINTAINER  # 镜像的作者信息,姓名+邮箱
RUN    # 镜像构建的时候需要运行的命令
ADD    # 添加jar包,添加环境,添加镜像
WORKDIR    # 镜像的工作目录
VOLUME    # 镜像与宿主机的数据源挂载目录
EXPOSE    # 设置端口
CMD    # 容器启动时要运行的命令,新加的命令会覆盖这个CMD命令
ENTRYPOINT  # 容器启动时要运行的命令,新加的命令会追加到ENTRYPOINT命令的后面
ONBUILD    # 当构建一个别继承DockerFile这个时候就会运行ONBUILD的指令。触发指令
COPY    # 类似ADD,将我们文件拷贝到镜像中
ENV    # 构建的时候设置环境变量
尝试编写一个SpringBoot项目的Dockerfile
复制代码
#所需环境
FROM openjdk:11
#作者身份
MAINTAINER rowan<863159885@qq.com>
#工作目录
WORKDIR /home/yousql
#数据卷
VOLUME /tmp
#暴露端口
EXPOSE 2307
#将需要运行的jar包添加到app.jar里
ADD YouSQL-0.0.1.jar app.jar
#镜像run后需要跑的命令
ENTRYPOINT ["java","-jar","app.jar"]
镜像搭完了,不要得意忘形,注意在docker run时需要注意的参数
  • --name : 通过镜像运行的容器设置的容器名(有必要,不然时默认的字符串,不好分别)

  • -p : 端口映射(需要与Dockerfile的EXPOSE对应)

  • -d : 后台运行

  • 完善中...

    docker run --name yousql -p 3307:3307 -d yousql:0.1

相关推荐
张忠琳9 小时前
【k3s】AutoK3s v0.9.3 Part 1 入口与 CLI 命令模块 — 超深度逐行分析之三
云原生·容器·kubernetes·k3s·autok3s
apgk114 小时前
基于Canal实现mysql数据同步到消息队列(RabbitMQ/Kafka)详细操作教程
docker·kafka·rabbitmq
fatcoder15 小时前
玩转Docker 06 — 容器网络
前端·后端·docker
xiaoxiangsiyan16 小时前
企业日常运维高频应用服务全解
运维·网络·云原生·容器·dns
AR_xsy16 小时前
docker--资源配额 配置
运维·docker·容器
国际云,接待16 小时前
Docker 容器突然退出、服务莫名重启:从 OOMKilled 到内存泄漏的生产排查手册
运维·docker·容器
橙-极纪元17 小时前
把docker的镜像文件从一台服务器中,迁移至另一台服务器
服务器·docker·容器
RobinDevNotes19 小时前
K8s+Ray+vLLM打穿大模型全生命周期(有实践步骤)
人工智能·云原生·容器·kubernetes·生活·vllm
雨声不在19 小时前
docker-android 重启后镜像起不来
android·docker·容器
AR_xsy20 小时前
k8s随笔-cordon排水
云原生·容器·kubernetes