0
点赞
收藏
分享

微信扫一扫

第四章 docker 命令部署lnmp(link方式)

本篇基于docker的cli部署,需要读者有点docker运行经验,本文章已尽量通俗的解释,相关质量借鉴于网络资料

docker-cli

部署DNMP(docker + nginx + mysql(MariaDB)+ PHP-FPM

  • 复查
  • 完成

环境部署

root@docker-debian:~# mkdir -p /opt/cli-lnmp/mysql
root@docker-debian:~# mkdir -p /opt/cli-lnmp/html
root@docker-debian:~# mkdir -p /opt/cli-lnmp/nginx
root@docker-debian:~# docker run -d --name test nginx
2a36d4bc789491f74c16960522db8cf4c4b8cc4850c98ba89b185ab4608b779c
root@docker-debian:~# cd /opt/cli-lnmp/html/
root@docker-debian:/opt/cli-lnmp/html# docker cp test:/etc/nginx/conf.d/default.conf ./
root@docker-debian:/opt/cli-lnmp/html# docker stop test
test
root@docker-debian:/opt/cli-lnmp/html# docker rm test
test
root@docker-debian:/opt/cli-lnmp/html#

容器部署

  • 部署Nginx,对外开放8083端口
  • 部署PHP-FPM,安装对应插件
  • 部署MySQL,定义映射目录

root@docker-debian:~# docker run -itd --name cli-mysql --restart=always -v /opt/cli-lnmp/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD="PObejCBeDzTRCncXwgBy" -e MYSQL_DATABASE="wordpress" -e MYSQL_USER="wordpress" -e MYSQL_PASSWORD="MMS12ge**hao" mysql:latest

root@docker-debian:~# docker run -itd --name cli-php -v /opt/cli-lnmp/html:/var/www/html --link cli-mysql:mysql --restart=always php:fpm

root@docker-debian:~# docker run -itd --name cli-nginx -v /opt/cli-lnmp/nginx:/etc/nginx/conf.d -v /opt/cli-lnmp/html:/usr/share/nginx/html -p 8083:80 --restart=always --link cli-php:phpfpm nginx:latest

掌握容器创建、运行、重新连接等命令,以及常用参数。

命令

备注

docker run

创建一个新的容器并运行一个命令

参数

备注

-i

以交互模式运行容器

-t

为容器重新分配一个伪输入终端

-d

在后台运行容器

--name

容器的命名

--restart

容器的重启策略

-v

映射卷

-e

环境变量设置,设置一些容器内容

-i 和 -t 一般都是同时使用,如果没有比如缺少 -i 则输入指令就没有回应,如果没有 -t 则没有显示

掌握容器内外文件相互复制,容器外运行容器内命令。

docker cp :用于容器与主机之间的数据拷贝

命令

备注

docker cp 容器:路径 主机路径

将容器内的数据复制到主机下

docker cp 主机路径 容器:路径

将主机的数据复制到容器内

docker exec:在运行的容器中执行命令

命令

备注

docker exec -it 容器名称 解释器(shell)

建立一个交互终端,进入容器

  • 可编写为.sh文件批量执行,既避免了操作失误,也提升了执行速度

root@docker-debian:~# cat cli-lnmp.sh
#!/bin/bash
# This is a shell of lnmp container.
docker run -itd --name cli-mysql \
--restart=always \
-v /opt/cli-lnmp/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD="PObejCBeDzTRCncXwgBy" \
-e MYSQL_DATABASE="wordpress" \
-e MYSQL_USER="wordpress" \
-e MYSQL_PASSWORD="MMS12ge**hao" \
mysql:latest

docker run -itd --name cli-php \
-v /opt/cli-lnmp/html:/var/www/html \
--link cli-mysql:mysql \
--restart=always \
php:fpm

docker run -itd --name cli-nginx \
-v /opt/cli-lnmp/nginx:/etc/nginx/conf.d \
-v /opt/cli-lnmp/html:/usr/share/nginx/html \
-p 8083:80 \
--restart=always \
--link cli-php:phpfpm \
nginx:latest
root@docker-debian:~# bash cli-lnmp.sh
88885ee960885095db1c98f8d60b02a4af60cb98d06e1e843cd25a69999178f6
8ca0ee147888dbc94400fdf2c4d29f435fd6ddd854af64f1530598b74e3ee693
f1046097adc3dd4b046329132ad0bd0998fea0c8a90d96a05c764b821e210025
root@docker-debian:~#

配置文件部署

  • Nginx配置(default.conf)
  • 第四章 docker 命令部署lnmp(link方式)_nginx


  • 第四章 docker 命令部署lnmp(link方式)_docker_02

  • PHP-FPM安装支持MySQL插件(安装后需重启)
  • 第四章 docker 命令部署lnmp(link方式)_mysql_03

  • 测试数据库连接

<?php
$con = new mysqli("容器名称","数据库用户","用户密码");
if (!$con) {
die('Could not connect: ' . mysql_error());
}

echo "连接成功";
?>

第四章 docker 命令部署lnmp(link方式)_docker_04

在nginx容器中部署wordpress

  • 复查
  • 完成

第四章 docker 命令部署lnmp(link方式)_docker_05

第四章 docker 命令部署lnmp(link方式)_nginx_06



举报

相关推荐

第四章

第四章总结

第四章:Hbase

第四章、数组

第四章:表

0 条评论