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: Kubernetes(简称为K8s)是一个开源的容器编排和管理工具,而Docker是一种流行的容器化技术。在将应用程序部署到生产环境时,通常会使用Kubernetes和Docker来实现应用程序的容器化部署Docker是一种轻量级的虚拟化技术,它可以将应用程序及其依赖项打包到一个独立的容器中。每个容器都运行在相互隔离的环境中,使得应用程序在不同的环境中具备相同的行为。使用Docker可以简化应用程序部署和维护过程,提高应用程序的可移植性和可扩展性。 而Kubernetes则是用来管理和编排Docker容器的工具。它提供了一种强大的方式来自动化容器的部署、扩展和管理。使用Kubernetes,我们可以定义容器的运行状态、资源需求和依赖关系,由Kubernetes来负责分配和管理这些容器的部署。Kubernetes提供了许多有用的功能,如自动扩展、负载均衡和容器调度等,可以确保应用程序始终以高可用性和高性能的方式运行。 在使用Kubernetes部署应用程序时,我们首先需要将应用程序打包成一个Docker容器镜像。然后,将这个镜像上传到一个容器镜像仓库中,可以是Docker Hub或者私有的镜像仓库。接下来,使用Kubernetes的命令或配置文件,定义容器的部署和管理规则,如需要的资源、运行方式和依赖关系等。最后,Kubernetes将根据这些规则自动部署和管理容器,确保应用程序按照我们期望的方式运行。 总结来说,Kubernetes和Docker是两个在容器化部署方面非常重要的工具。Docker提供了容器化技术,而Kubernetes则提供了一种强大的方式来自动化和管理这些容器的部署。通过使用Kubernetes和Docker,我们可以实现应用程序的高效、可移植和可扩展的部署。 ### 回答2: K8s(Kubernetes)和Docker都是用于应用程序部署和容器编排的工具,它们可以一起使用来实现高效的应用部署和管理。 Docker是一种开源的容器化平台,它将应用程序及其依赖关系打包到一个独立的容器中,使其可以在不同的操作系统和环境中运行。使用Docker部署应用程序时,可以将应用程序及其所有依赖项打包成一个镜像,在不同的环境中轻松部署和迁移。这样做可以显著提高应用程序的可移植性和可伸缩性。 然而,当应用程序数量和规模增加时,仅仅使用Docker来管理容器变得困难。这时候可以引入K8s来进行容器编排。K8s是一个用于自动化容器操作的开源平台,它可以自动化部署、扩展和管理应用程序的容器。K8s可以监视和管理多个Docker容器,确保它们始终按照所定义的规范和要求运行。 通过使用K8s,可以实现应用程序的高可用性、负载均衡和动态扩展。K8s允许自动调度容器,以满足应用程序的需求,并支持水平扩展和自动伸缩。此外,K8s还提供了强大的存储和网络管理功能,可以方便地进行持久化存储和跨容器通信。 总而言之,Docker和K8s都是部署和管理容器化应用程序的重要工具。Docker提供了容器化平台,可以打包和运行应用程序,而K8s则提供了容器编排和管理功能,能够自动化和优化容器的运行。通过结合使用这两个工具,可以实现灵活、高效和可靠的应用程序部署和管理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值