Dockerfile和dockerpush.sh文件

7 篇文章 0 订阅
2 篇文章 0 订阅

文件结构

执行过程

1.首先编写好Dockerfile文件,自定义容器设置

2.使用docker build构建镜像到本地

3.使用dockerpush.sh将本地的镜像上传到云镜像仓库

4.eureka-server.sh执行脚本运行镜像,如果本地没有镜像则会到云镜像仓库上面拉取镜像,然后运行镜像。

一、Dockerfile文件

Dockerfile文件是用来创建镜像的,可以在Dockerfile文件中配置镜像的相关参数,详细介绍

-t镜像的名字及标签,通常 name:tag 或者 name 格式;最后面一个“.”,表示Dockerfile文件

#构建镜像,镜像名为hub.c.163.com/mockup/wangyk/eureka-server:1.0.0
docker build -t hub.c.163.com/mockup/wangyk/eureka-server:1.0.0 .
#制作镜像的文件
#选择一个镜像作为基础镜像
FROM hub.c.163.com/library/java:latest
#镜像的所有者(可以省略)
MAINTAINER wangyk 1416841861@qq.com
#容器运行时监听的端口
EXPOSE 8761
#容器暴露ssh端口
EXPOSE 22
#修改docker的时区,docker的时区默认为utc,与北京时间相差8小时
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#将jar包放入容器中,ADD target/*.jar eureka-server.jar
ADD eureka-server-1.0.0.jar eureka-server.jar
#运行jar
ENTRYPOINT  java -Djava.security.egd=file:/dev/./urandom  -Xms64m -Xmx64m -XX:MetaspaceSize=64M -XX:MaxMetaspaceSize=64M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/javadump -jar /eureka-server.jar

Dockerfile文件的指令集,不区分大小写

  1. FROM:用于指定基础镜像
  2. MAINTAINER:维护者的信息
  3. COPY:复制文件到镜像(相对路径为Dockerfile)
  4. WORKDIR:设置当前工作路径,可设置多次,配合ADD,RUN,ENTRYPOINT使用
  5. RUN:用于容器内部执行命令
  6. EXPOSE:指定对外开发的端口
  7. ADD:添加文件到容器
  8. ENTRYPOINT:ENTRYPOINT ["executable", "param1", "param2"] 执行命令。只能有一个,最后一个生效
  9. CMD:CMD ["executable","param1","param2"]。启动程序默认执行的命令

二、dockerpush.sh文件

将Dockerfile制作好的镜像文件上传至镜像仓库,c.163.com(网易云镜像仓库),hub.docker.com(国外镜像仓库)

#!/bin/bash
#首先需要登录账号
sudo docker login --username=wangyk--password=wangyk hub.c.163.com
#$1是传入的版本号参数,然后将本地的镜像上传到网易云镜像仓库
sudo docker push hub.c.163.com/mockup/wangyk/eureka-server:$1

三、eureka-server.sh文件,写成脚本便于运行

用来运行镜像

docker rm -f hub.c.163.com/mockup/wangyk/eureka-server
docker rmi -f hub.c.163.com/mockup/wangyk/eureka-server:1.0.0
docker run -p 8761:8761 --name eureka-server-v /usr/local/logs/:/var/log/lang/ hub.c.163.com/mockup/wangyk/eureka-server:1.0.0 -d

 

PointNet是一个用于处理点云数据的深度学习模型,它主要用于3D物体分类、形状检索等任务。关于Dockerfile,这通常是一个脚本,用于自动化创建容器镜像的过程。Dockerfile包含了构建镜像所需的所有指令,从基础镜像开始,安装软件包,设置环境变量,复制文件,以及运行特定的服务。 对于PointNet的Dockerfile,内容可能会包括以下部分: 1. **基础镜像**: 选择一个合适的Python基础镜像,如`python:3.x` 或 `tensorflow/tensorflow:latest`。 ```dockerfile FROM python:3.7 ``` 2. **工作目录**: 设置工作目录,以便于管理文件。 ```dockerfile WORKDIR /app ``` 3. **安装依赖**: 使用`pip`安装PointNet及其所需的库。 ```dockerfile RUN pip install torch torchvision numpy scikit-image # 如果PointNet有特定版本需求,可以添加此行 RUN pip install git+https://github.com/charlesq345/pointnet.git ``` 4. **复制源码**: 将PointNet的代码复制到镜像中。 ```dockerfile COPY . /app ``` 5. **运行服务**: 定义启动应用的命令,比如运行训练或测试脚本。 ```dockerfile CMD ["python", "main.py"] ``` 6. **最后的标签**: 添加镜像标签,方便管理和分享。 ```dockerfile CMD ["sh", "-c", "python main.py"] ENTRYPOINT [] LABEL maintainer="YourName" TAG=latest ``` 完整的Dockerfile示例: ```dockerfile # ... (上述内容) EXPOSE 8080 # 如果应用需要暴露端口 # 构建镜像并推送 RUN docker build -t your_username/pointnet . RUN docker push your_username/pointnet:latest ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值