暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Docker使用docker-compose构建CentOS7-宝塔-SSH,开机自启服务

络鸣泪 笛归 2022-03-14
3055
在使用docker搭建宝塔服务时,会出现重启之后服务不能自启动,因此使用Dockerfile与docker-compose相互结合,构建开机自启动并且带SSH的宝塔服务。



Dockerfile
docker-compose
构建镜像:

centos7-baota-ssh:dockerfile

使用构建后的镜像启动容器:

centos7-baota-ssh



需要使用到的文件

Dockerfile
start_baota.shdocker-compose-centos7-baota-ssh.yaml


一、构造Dockerfile文件



使用的基础镜像为centos:7


    FROM centos:7


    # 安装ssh
    RUN yum install openssh-server -y


    # 安装宝塔,自动安装。
    RUN yum install -y wget \
    && wget -O install.sh http://download.bt.cn/install/install_6.0.sh \
    && yes y|sh install.sh


    # 修改root用户密码
    RUN /bin/echo "123456" | passwd --stdin root


    # 生成密钥
    RUN ssh-keygen -t rsa -f etc/ssh/ssh_host_rsa_key \
    && ssh-keygen -t rsa -f etc/ssh/ssh_host_ecdsa_key \
    && ssh-keygen -t rsa -f etc/ssh/ssh_host_ed25519_key


    # 将bt及其服务设置开机自启动
    ADD start_baota.sh home/start_baota.sh
    RUN chmod +x home/start_baota.sh


    # 修改默认的账户和密码
    RUN /etc/init.d/bt default \
    && yes username|bt 6 \
    && yes password|bt 5


    EXPOSE 22


    CMD ["sh", "/home/start_baota.sh"]

    Dockerfile

    • 将start_baota.sh复制到容器/home文件夹下后,需要添加可执行权限:chmod +x file

    • 使用yes {username|password}|[命令]处理需要的输入。

      username:自定义用户名

      password:自定义密码



    二、创建自启动sh文件start_baota.sh


    在构造时,安装宝塔后,修改root用户的密码,然后设置宝塔服务为开机自启动,需要启动的服务添加进入即可,使用shell命令(请根据安装PHP版本号做更改,例如:/etc/init.d/php-fpm-54 start)
      /etc/init.d/bt start 
      /etc/init.d/bt default | grep 外网面板地址
      /etc/init.d/nginx start
      /etc/init.d/httpd start
      /etc/init.d/php-fpm-{52|53|54|55|56|70|71|72|73|74} start
      /etc/init.d/mysqld start
      /usr/sbin/sshd -D

      start_baota.sh



      三、构造docker-compose文件

      build命令创建image镜像,ports命令对外开放端口;
        version: '3.3'


        services:
        baota:
        build:
        context: .
        dockerfile: Dockerfile
        image: centos7-baota-ssh:dockerfile
        ports:
              - 22:22
              - 8888:8888
              - 80:80
              - 888:888
        container_name: centos7-baota-ssh


        docker-compose-centos7-baota-ssh.yaml


        创建完成后;使用docker的docker-compose构建容器:
          docker-compose -f docker-compose-centos7-baota-ssh.yaml -p centos7-baota-ssh up -d


          需要的文件:已经上传云盘:https://luominglei.lanzouv.com/iT77z01fhr6h


          文章转载自络鸣泪 笛归,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

          评论