K8s学习之路(三)---制作镜像

本文主要总结制作容器镜像的知识

一、镜像制作简介

1.镜像打包需要的配置文件

主要文件:Dockerfile 文件
其他文件:工程的代码和运行工程所需要的环境列表

2.Dockerfile文件
Dockerfile文件是打包docker镜像时定义指令的文本文件,每条指令构建一层镜像。执行docker build指令时,Docker读取Dockerfile文件中的指令并执行。
下面是Dockerfile文件的基本内容。
在这里插入图片描述
关于Dockerfile内容详解,请移步:https://blog.csdn.net/xu_cxiang/article/details/104779190

二、实例

  1. C++程序镜像制作

利用gcc将c 程序打包成镜像
(1) 创建Dockerfile文件
内容如下:

#基于的基础镜像
FROM gcc:latest
#在目录/usr/src/下创建文件夹myapp
RUN  mkdir /usr/src/myapp
#将c程序copy到myapp文件夹下
COPY test.c /usr/src/myapp
#进入到路径下
WORKDIR /usr/src/myapp
RUN  gcc test.c 
CMD ["./a.out"]

(2) 将c程序和dockerfile放在同一目录下,进行镜像制作。
执行命令:
docker build -t ctest:1.0 .
#ctest为镜像名,1.0镜像版本;当前目录为 “.” (镜像名和版本号自己定义)

(3) 打包成镜像文件
执行命令:
docker save -o ctest_1.0.tar ctest:1.0

(4)查看镜像
执行命令: docker images

(5) push到镜像仓库
docker tag ctest:1.0 IP:端口/ctest:1.0
docker push IP:端口/ctest:1.0

IP :端口为 镜像仓库的IP和端口

(6)查看仓库中的镜像
curl -X GET http://10.1.93.4:5000/v2/_catalog

  1. Java后端镜像制作

利用openjdk镜像,将Java后端服务程序打包成镜像文件。

(1) 创建Dockerfile文件
内容如下:

FROM openjdk:8
COPY cloud_platform-0.0.1-SNAPSHOT.jar bd-board.jar
CMD ["java", "-jar", "bd-board.jar"]

(2) 将Dockerfile文件和Jar包放在同一个目录下
在这里插入图片描述

(3) 制作镜像
执行命令:
docker build -t bd-board:1.0 .
bdboard:1.0 即:镜像名称:版本号

(4) 打包成镜像文件
执行命令:
docker save -o bd-board_1.0.tar bd-board:1.0

  1. Python 程序镜像制作

(1) 导出程序依赖包
执行命令:
pip freeze > requirements.txt

(2) 编写Dockerfile文件
内容如下:

#python版本,可根据需求进行修改
FROM python:3.7
RUN mkdir /code
#将python程序添加到文件夹下
ADD test.py /code/
#将项目依赖添加到文件夹下
ADD requirements.txt /code/
WORKDIR /code
RUN pip install -r requirements.txt
#镜像运行时执行的命令,这里的配置等于 python test.py
ENTRYPOINT ["python","test.py"]

(3) 制作镜像
将python程序,依赖文件requirements.txt,Dockerfile文件放在同一目录下,执行命令:
docker build -t pythontest:1.0 .

(4) 打包成镜像文件
执行命令:
docker save -o pythontest_1.0.tar pythontest:1.0

三、常遇到的问题

(1)push到镜像库中可能会报错。
原因:
docker私有仓库服务器,默认是基于https传输的,所以我们需要在客户端127.0.0.1做相关设置,不使用https传输。

解决:
1.修改配置:vi /etc/docker/daemon.json,把代码“insecure-registries”:[“镜像服务ip:5000”] 放进去;
2.重启docker: (执行命令 1. systemctl daemon-reload 2.systemctl restart docker)

详情: https://blog.csdn.net/haodiaoer/article/details/94835649

(2) python打包镜像过程中下载项目依赖有时会报错
解决:1) 重新执行下命令docker build –t 镜像名:版本 .
2)将安装依赖设置时间长一些,RUN pip3 install --default-timeout=9999 --no-cache-dir -r requirements.txt
3)指定镜像源:RUN pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirement.txt

更多详情:
https://blog.csdn.net/u013282737/article/details/85233408?utm_medium=distribute.wap_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.wap_blog_relevant_pic&depth_1-utm_source=distribute.wap_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.wap_blog_relevant_pic

欢迎留言反馈,谢谢~

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值