Dockerfile 构建发布镜像(dockerhub和阿里云)

本文详细介绍使用Dockerfile配置Tomcat环境的过程,并演示如何构建和发布Docker镜像到Docker Hub及阿里云镜像服务。

目录

构建镜像

发布镜像

dockerhub 

阿里云


今天刚学完Dockerfile,现在来测试一下Dockerfile部署tomcat项目

构建镜像

Dockerfile配置信息如下

FROM centos:7  # centos最新版默认是8,但官方已停止支持,现已连不了网

MAINTAINER AdamShyly<598455320@qq.com>   # 现在大多用Label

COPY readme.md /usr/local/readme.md  # 拷贝readme 换成 ADD readme.md /usr/local 也是一样的

ADD jdk-8u321-linux-x64.tar.gz /usr/local  # 自动解压
ADD apache-tomcat-9.0.60.tar.gz /usr/local  # 自动解压 亲测如果是绝对路径会报错

RUN yum -y install vim  # 构建镜像时运行的指令

ENV MYPATH /usr/local
WORKDIR $MYPATH  # 指定工作目录

ENV JAVA_HOME /usr/local/jdk1.8.0_321
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.60
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.60
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

EXPOSE 8080  # 开放8080端口

CMD /usr/local/apache-tomcat-9.0.60/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.60/bin/logs/catalina.out
# 注意是 tail -F 不是 tail -f

其中我将 readme.md 、jdk、tomcat 和 Dockfile 放置于同级目录

 然后执行以下指令来构建镜像

docker build -t diytomcat .

注意我这里的PATH指定的是当前文件夹。对于这个PATH,官方有一段解释

The PATH specifies where to find the files for the “context” of the build on the Docker daemon.  

 大概意思就是Docker守护进程会根据这个PATH去寻找构造镜像所需的文件,例如 ADD 和 COPY

然后现在来测试一下这个镜像能不能正常启动tomcat服务

docker run -d -p 9090:8080 --name kuangshentomcat -v /home/docker-test-volume/tomcat/test:/usr/local/apache-tomcat-9.0.60/webapps/test -v /home/docker-test-volume/tomcat/tomcatlogs:/usr/local/apache-tomcat-9.0.60/logs diytomcat

 我让tomcat容器的webapps和logs文件夹都被宿主机挂载,方便测试和使用

此时如果出错就可以直接去宿主机挂载的logs目录下查看日志


发布镜像

dockerhub 

 第一步:需要登录dockerhub账号

docker login -u 用户名

 第二步:给要上传的镜像定义tag

docker tag 源镜像 仓库名/镜像:版本

第三步:上传镜像(注意这里的镜像名是刚刚定义完的tag

docker push 镜像名

 上传成功后可在dockerhub看到如下信息


阿里云

打开阿里云官网 ,找到 “容器镜像服务”

创建 “个人实例” 

 创建 “命名空间

创建 “镜像仓库” 

打开仓库后,这里就有官方提供的操作指令,非常详细

 上传成功后如下图

### 回答1: 可以按照以下步骤构建Python镜像并上传到阿里云的pai平台: 1. 在本地创建一个名为 Dockerfile 的文件夹,并在其中创建一个名为 requirements.txt 的文件,用于列出要安装的Python库: ``` FROM python:3.6 WORKDIR /app COPY requirements.txt /app/ RUN pip install --no-cache-dir -r requirements.txt COPY . /app ``` 2. 在终端中进入 Dockerfile 文件夹,并运行以下命令构建镜像: ``` docker build -t my-python-image . ``` 其中,`my-python-image` 是你想要给镜像起的名称。 3. 将镜像上传到阿里云Docker Hub 或者容器镜像服务中。这里以上传到容器镜像服务为例: 首先登录阿里云容器镜像服务: ``` docker login --username=your_username registry.cn-hangzhou.aliyuncs.com ``` 其中,`your_username` 是你的阿里云账户用户名。 然后将镜像打上标签: ``` docker tag my-python-image registry.cn-hangzhou.aliyuncs.com/your_namespace/my-python-image:latest ``` 其中,`your_namespace` 是你在容器镜像服务中创建的命名空间名称。 最后将镜像上传到阿里云: ``` docker push registry.cn-hangzhou.aliyuncs.com/your_namespace/my-python-image:latest ``` 现在你就可以在阿里云的pai平台上使用这个镜像了。 ### 回答2: 要通过Dockerfile构建Python镜像并标记上传到阿里云PAI平台,可以按照以下步骤进行操作: 1. 首先,在本地创建一个包含Python应用程序的文件夹。在该文件夹中创建一个`Dockerfile`以定义构建镜像的步骤。 2. 在`Dockerfile`中,首先选择一个基础映像,例如`python:3.8`。使用FROM指令指定基础映像。 3. 在Dockerfile中,使用COPY指令将Python应用程序的文件复制到镜像中的合适位置。例如,将`app.py`复制到容器的`/app`目录下。 4. 使用WORKDIR指令将工作目录设置为`/app`,这样在运行时会直接进入该目录。 5. 使用RUN指令安装Python应用程序所需的依赖项。例如,使用`pip install`安装`Flask`框架。可以根据自己的需求添加所需的依赖项。 6. 使用CMD指令在容器中运行Python应用程序。例如,将`python app.py`作为CMD指令。 7. 在终端中切换到包含Dockerfile的文件夹,并使用以下命令构建镜像: ``` docker build -t my-python-app . ``` 这会基于Dockerfile创建名为`my-python-app`的镜像。 8. 构建完成后,使用以下命令将镜像标记为阿里云PAI平台要求的命名规范: ``` docker tag my-python-app registry.cn-hangzhou.aliyuncs.com/my-namespace/my-python-app:latest ``` 这将为镜像添加一个标签标识符。 9. 最后,使用以下命令将镜像推送到阿里云PAI平台的容器镜像仓库中: ``` docker push registry.cn-hangzhou.aliyuncs.com/my-namespace/my-python-app:latest ``` 这会将镜像上传到阿里云并标记为最新版本。 完成以上步骤后,你就成功地通过Dockerfile构建了一个Python镜像,并将其标记上传到阿里云PAI平台的容器镜像仓库中。 ### 回答3: 通过Dockerfile构建Python镜像,并将镜像上传到阿里云的PAI平台,可以按照以下步骤进行操作: 1. 编写Dockerfile文件: 在本地创建一个文本文件,命名为Dockerfile,并在该文件中编写构建镜像的指令。可以使用以下内容作为示例: ``` # 使用已有的Python镜像作为基础镜像 FROM python:3.9 # 将当前工作目录设置为/app WORKDIR /app # 将当前目录下的所有文件复制到容器的/app目录中 COPY . /app # 安装Python依赖 RUN pip install -r requirements.txt # 设置环境变量 ENV PYTHONPATH "${PYTHONPATH}:/app" # 设置容器启动命令 CMD python main.py ``` 2. 构建镜像: 在终端中,进入包含Dockerfile的目录,执行以下命令来构建镜像: ``` docker build -t python-image . ``` 3. 登录阿里云: 在终端中,执行以下命令登录阿里云Docker Registry: ``` docker login --username=<你的阿里云账号> registry.cn-hangzhou.aliyuncs.com ``` 4. 标记镜像: 执行以下命令来标记镜像,其中`<Registry名>`是你在阿里云创建的Registry名字,`<版本号>`是你给镜像的版本号: ``` docker tag python-image registry.cn-hangzhou.aliyuncs.com/<Registry名>/python-image:<版本号> ``` 5. 上传镜像: 执行以下命令将镜像上传到阿里云的PAI平台: ``` docker push registry.cn-hangzhou.aliyuncs.com/<Registry名>/python-image:<版本号> ``` 6. 在PAI平台中使用镜像: 在PAI平台的训练作业或服务作业中,选择镜像时,填入阿里云Registry中的镜像路径:`registry.cn-hangzhou.aliyuncs.com/<Registry名>/python-image:<版本号>` 以上就是通过Dockerfile构建Python镜像,并将镜像标记上传到阿里云的PAI平台的步骤。这样可以方便地使用自定义的Python镜像进行任务的部署运行。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值