首页 > 其他分享 >docker中使用systemctl方法

docker中使用systemctl方法

时间:2023-10-13 11:45:15浏览次数:39  
标签:方法 systemctl INSTALL fi 镜像 docker true

想在docker中使用Flexmonster,但是在配置环境后,发现Flexmonster需要使用systemctl来管理服务,然而在docker容器中没有systemctl可用,于是开始折腾之旅!

以下是解决办法:

1、下载systemctl
wget https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl.py

2、修改dockerfile

#安装wget

USER root

ARG INSTALL_WGET=true

RUN if [ ${INSTALL_WGET} = true ]; then \
    apt-get install -y wget \
;fi

#build镜像时将当前目录中下载的systemctl.py文件拷贝到镜像/bin/systemctl,记得要将下载来的systemctl.py文件放到当前build目录,或修改dockerfile

#------------------------------------------------------------------------
# systemctl
#------------------------------------------------------------------------

USER root

ARG INSTALL_SYSTEMCTL=true

COPY ./systemctl.py /bin/systemctl

RUN if [ ${INSTALL_SYSTEMCTL} = true ]; then \
    chmod +x /bin/systemctl \
;fi

#在镜像中安装python,因为默认镜像中没有安装python

USER root

ARG INSTALL_PYTHON=true

RUN if [ ${INSTALL_PYTHON} = true ]; then \
    apt-get install python \
;fi

#给镜像安装sudo命令,因为镜像默认使用root,未安装sudo命令

ARG INSTALL_SUDO=true

RUN if [ ${INSTALL_SUDO} = true ]; then \
    apt-get install sudo \
;fi

3、build镜像

标签:方法,systemctl,INSTALL,fi,镜像,docker,true
From: https://www.cnblogs.com/dinmin/p/17757243.html

相关文章

  • /usr/bin/ld: cannot find -lxxx 的解决方法总结
    问题原因:1、系统没有按照相应的lib2、相对应的lib版本不对3、lib的symboliclink不对,没有连接到正确的函数库文件(so)解决:对于1,2种情况:apt-getinstalllibxxx-dev对于3中情况:可以先用locate和find找到指定的lib文件,查看链接文件是否正确的指向了我们希望的lib,如果不是,......
  • SQL注入一些方法
    select(ascii(substr(database(),1,1)))>91这个查询语句的目的是检查数据库名的第一个字符的ASCII码是否大于91。让我们分解这个查询以便更好地理解它的含义:database():这是一个MySQL函数,用于返回当前数据库的名称。substr(database(),1,1):这是一个MySQL函数,用于从数据库名称......
  • 将docker里的所有正在运行的docker容器commit成images镜像并推送至harbor仓库里
    脚本一需求:将本地服务器上正在运行的所有容器打包成镜像并上传至Harbor仓库下的指定项目里  #!/bin/bash#设置Harbor仓库的地址和凭据HARBOR_URL="192.168.1.55:88"HARBOR_USERNAME="admin"HARBOR_PASSWORD="Harbor12345"HARBOR_PROJECT="m55all-images"#登录到Harbor仓......
  • List 的 6 种去重方法
    1HashSet去重我们知道HashSet天生具备“去重”的特性,那我们只需要将List集合转换成HashSet集合就可以了,实现代码如下:publicclassListDistinctExample{publicstaticvoidmain(String[]args){List<Integer>list=newArrayList<Integer>(){{......
  • burpsuite靶场----CSRF----token验证取决于请求方法
    burpsuite靶场----CSRF----无防御靶场地址https://portswigger.net/web-security/csrf/bypassing-token-validation/lab-token-validation-depends-on-request-method正式开始1.登录2.抓包,发现有一段token3.尝试删掉token,发现不行4.尝试改变请求方式发现也能实现功......
  • 类里面静态方法(@staticmethod),类方法(@classmethod)和实例方法(self)的使用与区别
    前言python类里面常用的方法有3个:静态方法(@staticmethod),类方法(@classmethod)和实例方法(self)本篇讲解这3种方法在使用上有什么区别。函数先从函数说起,方法跟函数是有区别的,经常有人容易混淆,函数定义是def关键字定义(外面没class)deffun():a="hello"returna#......
  • wsl无法启动docker
    报错信息failedtostartdaemon:Errorinitializingnetworkcontroller:errorobtainingcontrollerinstance:unabletoaddreturnruleinDOCKER-ISOLATION-STAGE-1chain:(iptablesfailed:iptables--wait-ADOCKER-ISOLATION-STAGE-1-jRETURN:iptablesv1.8.7......
  • 130G docker seafile 从华为云迁移至腾讯云
    背景华为云到期,续费价格贵,腾讯云便宜,因此需要搬家华为云ubuntu16.401核2G200G系统盘,腾讯云同配置docker版seafile,文件总量130G力求简化粗暴无伤迁移方法操作华为云试做一个镜像,看看镜像有多大,测试后约90G在华为云买一个100G一个月时效的OBS,大约3.6元通知客户停机,做......
  • docker入门加实战—docker常见命令
    docker入门加实战—docker常见命令在介绍命令之前,先用一副图形象的展示一下docker的命令:常见命令docker的常见命令和文档地址如下表:命令说明文档地址dockerpull拉取镜像dockerpulldockerpush推送镜像到DockerRegistrydockerpushdockerimages查看本......
  • day01-Java方法
    方法java方法是语句的集合,它们在一起执行一个功能--相当于c中的函数方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子......