Docker使用:利用宝塔面板Docker管理器快速搭建PHP、Java、Python、nodejs等配套运行环境
思路:阿里云购买服务器选择centos7宝塔系统做宿主机,登录宝塔安装Docker管理器,获取一个centos7镜像,创建容器在里面再安装个宝塔后部署PHP、Python等。
点击购买阿里云云服务器,建议买香港可以免备案,系统镜像选择CentOS7或者用自己现有服务器
备注:去掉宝塔绑定账号,ssh登录服务器输入
rm -f /www/server/panel/data/bind.pl
一、登录宝塔->软件商店安装Docker管理器
二、打开Docker管理器,输入centos:7获取镜像
三、创建容器,按图输入
容器端口 |
映射到(服务器) |
说明 |
22 |
222 |
SSH服务 |
8888 |
8881 |
面板服务 |
80 |
81 |
HTTP服务 |
443 |
4433 |
HTTPS |
3306 |
33060 |
Mysql |
20 |
200 |
|
21 |
211 |
网站目录映射:/www/wwwroot
四、修改容器名字为cen_bt 点击终端,进入容器
五、在容器里安装宝塔面板,中间需要按y确认
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
安装完成把信息保存起来
第三步容器端口写8881需要修改宝塔面板端口为8881
echo '8881' > /www/server/panel/data/port.pl && /etc/init.d/bt restart
但是这样重启会丢失配置文件,解决方法一:
在宿主机单次启动
docker start cen_bt && docker exec cen_bt /bin/sh -c "echo '8881' > /www/server/panel/data/port.pl && /etc/init.d/bt restart" 最终解决方案:设置宿主机开机启动
cd /etc/profile.d/
vi hosts.sh
输入以下命令,保存退出
docker start cen_bt && docker exec cen_bt /bin/sh -c "echo '8881' > /www/server/panel/data/port.pl && /etc/init.d/bt restart"
或第二个方法:改完端口后生成新的镜像
六、输入ip:8881登录面板,就可以自由配置环境了
注意,要在阿里云服务器安全组配置规则里打开上面端口
七、部署网站
在docker容器中的宝塔面板 新建站点。需同时到宿主机的宝塔中新建相同网站,并建立反向代理。
网站源码只放入docker容器中的宝塔面板中即可
在宿主机的宝塔 ,新建站点后点击设置,需将宿主机的81端口指向docker容器中的80端口
访问网址即可成功
八、实际要用的话改完容器里所有配置后生成一份新的镜像
常见问题:
Docker使用:利用宝塔面板Docker管理器快速搭建PHP、Java、Python、nodejs等配套运行环境的更多相关文章
- docker中安装宝塔面板
我的电脑是win10,安装的virtualbox其上装的ubutun14,ubutun也安装了docker,今天我补充一个完整的操作流程.怎么在docker中安装宝塔面板?先打个岔,这些命令总是记不住 ...
- Expression Blend实例中文教程(11) - 视觉管理器快速入门Visual State Manager(VSM)
Expression Blend实例中文教程(11) - 视觉管理器快速入门Visual State Manager(V 时间:2010-04-12 16:06来源:SilverlightChina. ...
- docker中安装宝塔面板教程
本人电脑是win10,安装的virtualbox,装的centos7.2,在centos7.2装了docker,这个比较简单,网上一大堆教程,今天说一下装好了docker之后怎么在docker中安装面 ...
- Linux下docker中安装宝塔面板教程
本人云服务器,装的cent os7.6,在cent os7.6已装了docker,没装的可以借鉴 https://www.cnblogs.com/xiaoyige/p/12673076.html 1. ...
- 利用宝塔面板搭建 Laravel 5.5 环境
1.更新系统 yum install epel-release #rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest- ...
- Expression Blend实例中文教程(11) - 视觉管理器快速入门Visual State Manager(VSM)
Visual State Manager,中文又称视觉状态管理器(简称为VSM),是Silverlight 2中引进的一个概念.通过使用VSM,开发人员和设计人员可以轻松的改变项目控件的视觉效果,在项 ...
- 利用位运算进行a+b的计算(Java&&Python)
题目链接 需要用到的位运算操作:异或(^).与(&).右移(<<) 异或运算:又称不进位加法,a^b得到的结果为a与b相加,但是需要进位的地方不进位得到的结果 与运算:找出来a和b ...
- 如何利用pyenv 和virtualenv 在单机上搭建多版本python 虚拟开发环境
pyenv 和virtualenv分别是干什么的? pyenv帮助你在一台机上建立多个版本的python环境, 并提供方便的切换方法. virtualenv则就是将一个目录建立为一个虚拟的python ...
- 宝塔面板 + Rancher + 阿里云镜像仓库 + Docker + Kubernetes,添加集群、部署 web 应用
目录 一,安装宝塔面板(V 6.8) 二,使用宝塔安装 Docker,配置阿里云容器服务 三,安装 Rancher (Server) 四,管理 Rancher.添加集群 五,添加 Rancher 应用 ...
- 5、Java Swing布局管理器(FlowLayout、BorderLayout、CardLayout、BoxLayout、GirdBagLayout 和 GirdLayout)
5.Java-Swing常用布局管理器 应用布局管理器都属于相对布局,各组件位置可随界面大小而相应改变,不变的只是其相对位置,布局管理器比较难以控制,一般只在界面大小需要改是才用,但即使这 ...
随机推荐
- 前端 面试 html css 如何让一个盒子水平垂直居中?
方法1 使用子绝父相 定位 推荐 说明: 让父元素相对定位,因为要让子元素以父元素为参考对象,如果父元素不设置定位,子元素的参考对象就是整个页面document: 子元素绝对定位,top:50%: ...
- C++ 第一节课 名字空间 ,输入输出函数,和 C 语言的区别
#include <iostream> // #include 头文件,C++标准库的头文件都不带 .h (.h 是C库头文件添加的) #include <cstdio> #i ...
- 使用datagrip时,报错 connection refused
因为数据库没有开启 : 打开终端 输入(管理员身份): net start mysql80 (这是你的数据库的名字)
- 实战!oracle 11g一键安装脚本分享
分享一个常用的数据库一键安装脚本,大家可以从我的网盘进行下载 链接: https://pan.baidu.com/s/1iV-0zeXrwhJxJcm9qA_P_g 提取码: apbc 脚本内容: # ...
- web服务器静态资源下载
1. 使用 Beego 实现静态文件下载 Beego 是一个强大的 Go Web 框架,提供了处理静态文件的功能.通过简单的配置,我们可以将本地文件夹作为静态资源目录,并为用户提供下载链接. 1.1 ...
- 云原生爱好者周刊:VMware Tanzu 社区办发布,无任何限制!
云原生一周动态要闻: VMware Tanzu 推出社区版 Kubernetes Cluster API 1.0 版已生产就绪 Linkerd 2.11 发布 Cartografos 工作组推出云原生 ...
- Git操作【常用操作命令】
Git操作指令 1. git init 初始化一个git 仓库: 2. git add test.txt 添加一个文件到仓库,可以添加多个,一空格隔开: 3. git commit -m " ...
- 每秒550万亿次算力!打破世界纪录!中国造全球首例纯电驱全尺寸人形机器人!直击全球最快人形机器人“天工”The world's first purely electric humanoid robot
地址: https://www.youtube.com/watch?v=uRc-885NpD4
- Nuxt.js 应用中的 build:error 事件钩子详解
title: Nuxt.js 应用中的 build:error 事件钩子详解 date: 2024/11/7 updated: 2024/11/7 author: cmdragon excerpt: ...
- Python文件读取和写入方法
读取 # 通过单字符串空格分隔 def count_words(filepath): with open(filepath, 'r') as file: string = file.read() st ...