docker部署

记录一下用docker部署部署第三方web服务器

第一步:拉取debian9基础镜像

docker pull shjbdh8qw3eb/debian9

第二步:进入debian9基础镜像

docker exec -it fa /bin/bash

第三步:配置服务器环境

更新apt源

sed -i s/deb.debian.org/archive.debian.org/g /etc/apt/sources.list
apt-get update
apt-get install vim

安装依赖

apt-get install git mysql-server apache2 php php-xml php-zip php-curl php-mysql php-mbstring php-gd

下载FlightAirMap源码到/var/www路径下(使用代理加快下载速度)

cd /var/www
git clone --recursive https://ghproxy.com/https://github.com/Ysurac/FlightAirMap

修改apache2 配置文件

vim /etc/apache2/site-available/000-default.conf

添加

DocumentRoot “/var/www/FlightAirMap”
<Directory /var/www/FlightAirMap>
Options +Indexes +FollowSymLinks -MultiViews
AllowOverride All
Order allow,deny
Allow from all

开启rewrite

a2enmod rewrite

重启apache

service apache2 restart

开启mysql 服务

service mysql start

修改目录权限

cd /var/www/FlightAirMap
chmod 666 require/settings.php
chmod 777 install/tmp
chmod 777 data

数据库安全配置-密码配置、登陆配置、表操作等

mysql_secure_installation

创建数据库和用户

mysql -u root -p

CREATE DATABASE flightairmap;
GRANT ALL ON flightairmap.* TO ‘youruser’@‘localhost’ IDENTIFIED BY ‘yourpass’;
FLUSH PRIVILEGES;

在浏览器中进行安装

http://127.0.0.1:8090/install/

#退出镜像
exit

第四步:在宿主机上将刚才做好的一系列操作封装为新的镜像

docker commit my_debian_container my_custom_debian_image
这将将容器 my_debian_container 保存为新的镜像 my_custom_debian_image

 my_custom_debian_image镜像有了环境,但是服务并不会自动打开,下面配置自动打开服务的镜像

第五步:编写Dockerfile

FROM my_custom_debian_image

# 安装和配置应用程序等操作...

# 将 run.sh 复制到容器内

# COPY run.sh /run.sh

# 添加执行权限

RUN chmod +x /run.sh

# 设置容器默认启动命令为开启 Apache2 和 MySQL 服务,并保持容器持续运行

CMD ["sh", "-c", "service apache2 start && service mysql start && tail -f /dev/null"]

第六步:构建镜像

docker build -t my_custom_web_image .

第七步:测试镜像(环境+自动开启服务)

docker run -d
–name=fam
–privileged
-p 8090:80
-p 3307:3306
-p 9999:9999
–env TZ=Aisia/Shanghai
–env WEBUSER=flightairmap
my_custom_web_image

docker exec -it fam /bin/bash’
service apache2 status
service mysql status

docker run -d
–name=fam
–privileged
-p 8090:80
-p 3307:3306
-p 9999:9999
-p 9000:9000
–env TZ=Aisia/Shanghai
–env WEBUSER=flightairmap
flightairmap_t

### 使用 Docker部署教程 #### 一、Docker 基础操作 为了更好地理解如何使用 Docker 进行部署,首先需要掌握一些基础的操作命令。以下是常用的 Docker 命令及其功能: - **启动 Docker 服务** 可以通过 `sudo systemctl start docker` 来启动 Docker 服务[^1]。 - **停止 Docker 服务** 如果需要停止 Docker 服务,则可以运行 `systemctl stop docker`[^1]。 - **重启 Docker 服务** 当配置发生变化或者需要重新加载服务时,可执行 `sudo systemctl restart docker`[^1]。 这些基本命令能够帮助管理员控制 Docker 守护进程的状态。 --- #### 二、Docker 版本检查 在实际部署之前,建议先确认当前安装的 Docker 是否为最新版本或满足需求。这一步可通过输入以下命令完成: ```bash docker --version ``` 该命令用于显示已安装的 Docker 版本号[^1]。确保环境中的 Docker 是兼容目标应用所需的最低版本。 --- #### 三、具体场景下的 Docker 部署案例 ##### 1. StackStorm 的 Docker 部署 对于自动化运维工具 StackStorm 而言,官方提供了一种基于 Docker Compose 的快速部署方式。用户可以从指定仓库拉取镜像并按照文档指引设置好必要的参数文件即可实现一键化搭建流程[^2]。 具体的步骤包括但不限于克隆 Git 存储库以及调整 compose 文件内的变量定义等内容。更多细节请参阅项目主页链接:<https://gitcode.com/gh_mirrors/st/st2-docker>。 ##### 2. Nginx 的 Docker 部署与管理 针对 Web 服务器软件 Nginx,在生产环境中通常推荐采用容器技术来简化维护工作量。例如更新配置后无需手动进入宿主机内部修改而是直接利用外部挂载路径同步更改至实例内;另外还支持动态扩展规模等功能特性[^3]。 值得注意的是,不同于传统方法通过信号机制触发热更替动作(`nginx -s reload`) ,此时应改用如下形式发送请求给对应的目标实体对象: ```bash docker exec -it [容器ID|NAME] nginx -s reload ``` 此语法结构允许开发者轻松达成一致性的效果同时保留原有优势特点不变的前提下进一步增强了灵活性表现力等方面的优势所在之处值得肯定推广开来加以运用实践当中去检验其价值意义何在等问题都需要我们深入思考探索寻找答案解决办法才行啊朋友们加油吧! --- ### 总结 综上所述,无论是通用型的基础架构还是特定用途的应用程序都可以借助于 Docker 技术显著提升效率降低成本开销比例关系合理优化资源配置利用率水平等等诸多方面均有所体现出来供大家参考借鉴学习模仿复制粘贴过来就可以了嘛哈哈开玩笑啦其实还是要认真对待每一个环节步骤哦亲们记住咯😊
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值