资讯专栏INFORMATION COLUMN

CentOS 7 使用 Docker 快速搭建 LNMP 环境

Tecode / 2199人阅读

摘要:配置文件配置配置文件配置文件配置文件太大就不贴了,直接下载然后本地修改吧。不会使用的使用命令进行替换。是一种推出的免费的公共镜像库服务。本地对镜像打提交镜像到仓库参考

Docker 安装

安装 Docker

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

配置国内镜像

mkdir -p /etc/docker
cat >/etc/docker/daemon.json << EOF
{
  "registry-mirrors": [
      "http://hub-mirror.c.163.com",
      "https://docker.mirrors.ustc.edu.cn"
  ]
}
EOF

修改 Docker 持久化目录

test -d /var/lib/docker && 
    mv /var/lib/docker /var/lib/docker_backup && 
    mkdir -p /data/docker && 
    ln -sf /data/docker /var/lib/docker

创建 Docker 工作组

groupadd docker

添加用户到 Docker 工作组

Docker 默认只能通过 root 权限执行操作, 但通过将用户添加到 docker 用户组可以规避这一点:

gpasswd -a ${USER} docker
## or
usermod -aG docker ${USER}

启动 Docker 并加入开机启动项

systemctl daemon-reload
systemctl start docker
systemctl enable docker

安装校验

docker version

安装 LNMP

搜索镜像

docker search lnmp

拉取镜像

$ docker pull 2233466866/lnmp:latest

创建相关目录

mkdir -p /app/lnmp/default /docker/lnmp/
cd /docker/lnmp/
mkdir -p data/mysql conf/vhost
mkdir logs backup temp

创建相关文件

Nginx/MySQL/PHP 配置文件根据自己情况修改。

Nginx 配置文件

cat >/docker/lnmp/conf/nginx.conf <

MySQL 配置文件

cat >/docker/lnmp/conf/my.cnf <

PHP 配置文件

配置文件太大就不贴了,直接下载然后本地修改吧。不会使用 vim 的使用 sed 命令进行替换。

wget -N https://pic.ryanjie.cn/docker/lnmp/php.ini -O /docker/lnmp/conf/php.ini
wget -N https://pic.ryanjie.cn/docker/lnmp/php-fpm.conf -O /docker/lnmp/conf/php-fpm.conf
## 上面两个文件也可以
wget -N https://pic.ryanjie.cn/docker/lnmp/nginx.conf -O /docker/lnmp/conf/nginx.conf
wget -N https://pic.ryanjie.cn/docker/lnmp/my.cnf -O /docker/lnmp/conf/my.cnf

备份配置文件

cp conf/* backup/

创建自定义网络 lnmp

$ docker network create lnmp
9d4d47ee3b875cdadf7300182f5de43523efdd0aaecbe37a79ed2cdc75feb777
$ docker network  ls
NETWORK ID     NAME      DRIVER    SCOPE
545f4bdc894a   bridge    bridge    local
753524bb4716   host      host      local
9d4d47ee3b87   lnmp      bridge    local
8623643804ac   none      null      local

启动容器

docker run -dit 
-p 8080:80 
-p 443:443 
-p 3306:3306 
-p 9000:9000 
-e TC="Asia/Shanghai" 
-v /sys/fs/cgroup:/sys/fs/cgroup:ro 
-v /app/lnmp:/www 
-v /docker/lnmp/conf/nginx.conf:/usr/local/nginx/conf/nginx.conf 
-v /docker/lnmp/conf/vhost:/usr/local/nginx/conf/vhost 
-v /docker/lnmp/data/mysql:/data/mysql 
-v /docker/lnmp/conf/my.cnf:/etc/my.cnf 
-v /docker/lnmp/conf/php.ini:/usr/local/php7/lib/php.ini 
-v /docker/lnmp/conf/php-fpm.conf:/usr/local/php7/etc/php-fpm.conf 
-v /docker/lnmp/logs:/logs 
--restart=always 
--net lnmp 
--privileged=true 
--name=mylnmp 
2233466866/lnmp:latest

连接容器

# 容器名称与上一步保持一致
docker exec -it lnmp /bin/bash

配置 LNMP

检查 Nginx/MySQL/PHP 状态

ps aux|grep nginx
ps aux|grep mysql
ps aux|grep php-fpm
# 或者(Or)
systemctl status nginx
systemctl status mysqld
systemctl status php7

初始密码(Default password)

cat /var/log/mysqld.log|grep A temporary password
# 或
password=`cat /var/log/mysqld.log|grep A temporary password`;password=${password:91};echo $password

初始化(initialize)

# 请及时修改Mysql的密码(默认并未重置密码和初始化)
password=`cat /var/log/mysqld.log|grep A temporary password`
password=${password:91}
echo -e "${password}
${password}
${password}
n
y
y
y
y
"
# 以上三条命令的输出为以下命令的输入
mysql_secure_installation

PHP 扩展(PHP extension)

# 默认已安装部分扩展在目录:/usr/local/php7/lib/php/extensions/no-debug-non-zts-20170718/
# 如果要启用指定扩展,则需要修改php.ini,加上
extension=xxx.so
# xxx为PHP扩展的文件名,然后重启php
systemctl restart php7

版本(Version)

# 各版本详细信息请参考
https://github.com/2233466866/lnmp/wiki

推送镜像

这里使用 Ucloud 的 公共镜像库 UHub。UHub 是一种 UCloud 推出的免费的公共镜像库服务。

  1. 登录镜像仓库。

    $ docker login uhub.service.ucloud.cn -u ryan@gmail.com
  2. 本地对镜像打 tag:

    $ docker tag 2233466866/lnmp:latest uhub.service.ucloud.cn/ryan/2233466866/lnmp:0.0.1
  3. 提交镜像到仓库:

    $ docker push uhub.service.ucloud.cn/ryan/2233466866/lnmp:0.0.1

参考

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/125972.html

相关文章

  • 分解dockerlnmp环境搭建中的作用

    摘要:如果不用我们可能将上述讲的命令每搭建一次就需要执行一遍,有没有能统一管理的有,就是在环境搭建中的作用快速创建镜像,快速创建并运行容器,实现统一管理。 前言 初学者在dcoker学习过程中,可能不太清楚docker中那么多的命令,参数,工具在lnmp环境搭建中起了什么作用,下面跟着我来熟悉一下。(本文面向的是不怎么熟悉linux的:phper) 镜像,容器,仓库 镜像:Docker 镜像...

    tommego 评论0 收藏0
  • docker 搭建lnmp开发环境

    摘要:学习心得前言耗时一周零三天,终于用搭建起自己的开发环境。来搭建一下环境,然后,桌面没了。作为过来人,我只想说,一定要只做一件事,不要过多的去研究,我们只是想搭建本地运行环境。 docker学习心得 前言 耗时一周零三天,终于用docker搭建起自己的开发环境。详细过程:请参考分解docker在lnmp环境搭建中的作用showImg(https://segmentfault.com/im...

    Hydrogen 评论0 收藏0
  • 使用Docker 一键部署 LNMP+Redis 环境

    摘要:使用部署环境简介是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的机器上,也可以实现虚拟化。命令是编写之后使用的。后者会自动继承中的服务及相关的环境变量设置网络模式。 使用Docker 部署 LNMP+Redis 环境 Docker 简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器...

    _Zhao 评论0 收藏0
  • 使用Docker 一键部署 LNMP+Redis 环境

    摘要:使用部署环境简介是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的机器上,也可以实现虚拟化。命令是编写之后使用的。后者会自动继承中的服务及相关的环境变量设置网络模式。 使用Docker 部署 LNMP+Redis 环境 Docker 简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器...

    wangshijun 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<