2021年11月18日
Docker 安装宝塔面板
服务器环境基于Ubuntu 20.04
第一步: 安装Docker运行环境
详细的操作步骤可以参考之前的文章
第二步: 启动Docker的Ubuntu基础环境镜像
#新建web数据的存放目录 mkdir /home/www #启动容器 #--restart=always 重启docker的时候自动重启宝塔的container #--name baota 容器名称设置为baota #-p 80:80 -p 443:443 -p 888:888 -p 8888:8888 主机和容器之间的端口映射 #-v /home/www:/www 挂载主机的/home/www 到容器的/www #ubuntu:20.04 启动的镜像名称, 可以换成自己熟悉的系统, 比如centos docker run -i -t -d --restart=always --name baota -p 80:80 -p 443:443 -p 888:888 -p 3306:3306 -p 8888:8888 --privileged=true -v /home/www:/www ubuntu:20.04
第三步:进入容器的终端使用宝塔的安装脚本进行安装
#进入容器的shell docker attach baota #修改系统源, 安装基础的工具 sed -i "s/archive.ubuntu/mirrors.aliyun/g" /etc/apt/sources.list apt update #安装必要的系统工具包 apt install wget curl lsof build-essential cmake libxml2-dev openssl libssl-dev -y #禁用容器的防火墙 ufw disable #使用宝塔官方的脚本按照脚本提示进行安装 wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh
按照官方脚本安装之后, 就可以正常登录面板, 并安装web环境. 但是这样还不完美, 你会发现每次重启docker容器, 还需要手动重启里面的nginx, mysql等服务.
接下来介绍如何添加容器内服务的启动脚本
第四步:添加容器内服务的启动脚本
#创建启动脚本 vim /root/start.sh
文件内容如下:
#!/bin/sh /etc/init.d/bt start #启动宝塔面板 /etc/init.d/nginx start #启动nginx /etc/init.d/mysqld start #启动MySQL数据库 /bin/bash
输入exit退出容器shell, 回到主机的shell
停止已经在运行的宝塔容器
docker stop baota
提交容器的更改
docker commit baota ubuntu:baota
创建docker构建文件
vim Dockerfile
文件内容如下:
From ubuntu:baota CMD [ "/bin/bash","/root/start.sh"]
根据Dockerfile生成新的镜像
docker build -t baota ./
启动新的容器
docker run -i -t -d --restart=always --name bt -p 80:80 -p 443:443 -p 888:888 -p 3306:3306 -p 8888:8888 --privileged=true -v /home/www:/www baota
至此完成启动脚本的配置