K8S云管平台开发实践 - Dockerfile

历经大半年,自研的k8s云管理平台终于算是完成了一阶段的开发目标。最近打算整理一下开发中遇到的各种问题和坑。温故而知新,也许能有新的收获。
想到哪写哪,也因为最近测试阶段,主要工作放在将传统应用转化为Docker容器应用,所以第一篇我打算写下Dockerfile。

如何使用Dockerfile将传统应用快速改造为容器镜像

1. Dockerfile文件内容(注意,文件名就是Dockerfile,不带后缀)

一般来说,Dockerfile分为四部分:基础镜像信息、维护者信息、镜像操作指令、容器启动指令

########################################################## 
# Dockerfile to run a flask-based web application# Based on an jsk:8 image 
##########################################################
# Set the base image to use to centos 
FROM codenvy/jdk8
# Set the file maintainer 
MAINTAINER jasonwang,wjs7740@163.com

# Set env varibles used in this Dockerfile (add a unique prefix, such as DOCKYARD) 
# Local directory with project source 
ENV DOCKYARD_SRC=k8scmp
# Directory in Container for all project files 
ENV DOCKYARD_SRCHOME=/opt 
# Directory in container for project source files 
ENV DOCKYARD_SRCPROJ=/opt/jar

# set container user:root
USER root

# Copy application source code to SRCDIR 
COPY $DOCKYARD_SRC $DOCKYARD_SRCPROJ

# Create application subdirectories 
WORKDIR $DOCKYARD_SRCPROJ 
RUN mkdir log 
VOLUME ['$DOCKYARD_SRCPROJ/log/']

# Sync container time
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# Port to expose 
EXPOSE 8000

WORKDIR $DOCKYARD_SRCPROJ 

# set start script
ENTRYPOINT["python","manage.py","runserver -p 8000"]

挑其中重要的说一说:
a) RUN、ENV、EXPOSE为镜像操作指令。每运行一条指令,镜像就添加新的一层;CMD是用来指定运行容器是的指令
b) USER root:指定登录容器的用户,最好设置为root,否则执行某些命令是可能会有问题
c) 设置时区:看基础镜像的时区,如果不设置,可能某些情况会是伦敦时间,日志输出会早八小时
d) CMD\ENTRYPOINT 指令都只能有一个,如果多个则只执行最后一个;另外注意有三个参数

2. build镜像
# 在Dockerfile同级目录下
sudo docker build -t jason/webdemo .

成功后显示Successfully,同时返回镜像ID,如图:
这里写图片描述

3.push镜像到harbor
docker tag imageid tagname(docker-hub:80/workflow/k8scmp)
docker push tagname(docker-hub:80/workflow/k8scmp)
4.运行k8scmp
sudo docker run -d --restart=always \
-p 8000:8000 \
--add-host docker-hub:182.xxx.xx.xxx \
--name k8scmp \
tagname(docker-hub:80/workflow/k8scmp)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值