docker部署调度程序

Dockerfile(构建初始镜像)

# python:3.8-slim-buster为精简版的python
FROM python:3.8-slim-buster
# 1059为组的id,newgroup为组名,1088为用户的id,newuser为新用户
RUN groupadd -g 1059 newgroup && \
    useradd -g -u 1088 -g newgroup -m newuser
USER newuser
RUN mkdir -p /home/wltx
COPY --chown=1088:1059 . /home/wltx
WORKDIR /home/wltx
# 全局安装python
USER root
RUN pip install --upgrade pip\
	pip install --root-user-action=ignore --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi simple --trusted-host mirrors.aliyun.com
创建镜像,并压缩导出
# 与dockerfile在同一个目录执行,创建镜像
docker build -t xxx:1.0 .
# 导出镜像
docker save -o xxx.tar xxx:1.0
# 压缩
tar -czxf xxx.tar.gz xxx.tar
另一个服务器加载上述镜像
# 解压镜像压缩文件
tar -zxvf xxx.tar.gz
# 加载镜像
docker load -i xxx.tar
docker images

dockerfile2(其他服务器,以这个镜像为基础构建新镜像)

FROM XXX:1.O
# 创建另一个新用户,这个新用户的用户id和组id与部署服务器的用户id和组id相同
RUN groupadd -g 111 zb_zh &&\
    useradd -g zb_zh -u 222 -m zb_zh
COPY --chown=222:111 config.py /home/wltx/config.py
RUN chown 222:111 /home/wltx
创建镜像2.0

docker build -t xxx:2.0 .

在新服务器上面启动镜像
#! /bin/bash
job_name=ZTB11
image_name=xxxx:1.0
PY_SCRIPT=start.py
user=$(id -u ${USER}):$(id -g ${USER})
WORK_DIR=$(cd $(dirname &0);pwd)
REMOTE_DIR=/home/wltx

docker run -rm -u $user -it -d\
    -v /home/xxx/.ssh/rsa_id:/homw/xxx/.ssh/rsa_id\
	-v $WORK_DIR/tmp:$REMOTE_DIR/tmp\
	-v $WORK_DIR/logs:$REMOTE_DIR/logs\
	-v /etc/localtime:/etc/localtime\
	$image_name python $REMOTE_DIR/$PY_SCRIPT

其中 -rm 参数是测试时候使用—退出容器后,对容器进行清理
-d 参数为部署的时候后台运行
映射目录前,需要保证本地服务器有这个目录,否则docker会自动帮创建归属root的目录

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值