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

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# 

容器部署

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) 建立一个交互终端,进入容器
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:~#

配置文件部署

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

echo "连接成功";
?>

image

在nginx容器中部署wordpress

image

image

posted @ 2022-12-19 18:37  plengong  阅读(183)  评论(0编辑  收藏  举报