由于项目需要在内网部署,处于断网的情况下首当其冲就是web环境的安装与搭建,在这里不能用yum方式,也不能用光盘方式,真的很蛋疼啊,只能用docker容器来安装搭建web环境了。以下是在内网断网的情况下完整版从头到尾利用在docker环境下安装和搭建web环境整套流程。
Docker 环境安装手册
需要安装环境:
Docker
需要 centos 系统 7 以上版本
安装的 Docker 镜像
Httpd 包含了 php 和 apache
Mysql8 包含了 mysql8 版本。
镜像都已经制作好,可以直接通过Docker导入镜像来启动运行的容器。
Docker 以及 镜像下载地址:
安装包下载地址:https://cowtransfer.com/s/adbac8151a1f40密码zyuyz6
安装Docker
1. 解压Docker 的安装文件
解压压缩包 tar -vxf docker-19.03.9.tgz
将 解压的 Docker目录里面的 bin目录里面的二进制文件移动到/usr/bin目录
mv docker/* /usr/bin
3设置 Docker 启动服务
创建docker.service , 存放目录为:/etc/systemd/system/
命令:vim /etc/systemd/system/docker.service
Docker.service 里面存入一下内容:
### 把下面的内容复制进去
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups
because the delegate issues still
# exists and systemd currently does not support
the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H
tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance
problems due to accounting overhead
# in the kernel. We recommend using cgroups to
do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version
supports it.
# Only systemd 226 and above support this
version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not
reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all
processes in the cgroup
KillMode=process
# restart the docker process if it exits
prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
4. 赋予 Docker.service 执行权限
chmod +x /etc/systemd/system/docker.service
测试执行是否成功,执行以下命令
systemctl daemon-reload
systemctl start docker
systemctl enable docker.service
systemctl status docker
docker -v
安装 PHP +Apache
通过 docker 导入 镜像 httpd_php.tar
docker load -i httpd_php.tar
创建 lamp 网络:
docker network create lamp
docker network ls
启动镜像:
docker run --name httpd_php --net lamp -p 8081:80 -v /data/docker/httpd/conf:/etc/apache2/sites-enabled -v /data/docker/www:/var/www/html -v /data/docker/httpd/logs:/var/log/apache2 -d 7f913ca0d317
通过 docker ps 显示出了 httpd_php 就是安装成功了。
# 下面这些目录都是从 docker 容器里面映射出来的。
/data/docker/httpd/conf # apache 配置目录
/data/docker/www #程序目录(程序源码放在这个目录下面)
/data/docker/httpd/logs # apache 日志目录
测试 PHP
执行下面命令 创建 一个 index.php 文件。
echo "<?php phpinfo(); ?>" > /data/docker/www/index.php
访问出现下面这个就是正常了
安装 Mysql
1. 导入 docker 镜像 docker load -i mysql.tar
1. 创建 Mysql 容器 ( MYSQLROOTPASSWORD 为 mysql root 账户的密码 )
执行以下命令:
docker run --name mysql --net lamp -p 3306:3306 -v /data/docker/mysql/data:/var/lib/mysql -v /data/docker/mysql/conf:/etc/mysql/conf.d -v /data/docker/mysql/logs:/logs -e MYSQL_ROOT_PASSWORD=test123456 -d mysql:latest --character-set-server=utf8
修改Mysql8 默认密码插件
vim
/data/docker/mysql/conf/docker_mysql.cnf
# 输入一下内容
[mysqld]
default-authentication-plugin=mysql_native_password
重启 mysql 容器
docker restart mysql
进入 mysql 容器
docker exec -it mysql
/bin/bash
mysql -uroot -ptest123456
创建 mysql 用户和数据库
create database grid; # 创建数据库
create user grid@localhost identified by
'123456'; # 创建 mysql 用户 grid 密码为 123456
grant all privileges on grid.* to grid@localhost;
# 给 grid 用户赋值 grid 数据库的增删改查权限
发表评论 取消回复