在docker容器里部署lnmp

这篇博客详细介绍了如何在Docker容器中部署LNMP(Linux, Nginx, MySQL, PHP)环境,包括MySQL数据卷、端口映射、容器互联以及多节点部署。通过实例展示了从拉取镜像到启动容器,配置数据库和PHP,以及Nginx负载均衡的全过程。" 108779471,7885493,Java与Python的继承与多态对比,"['Java', 'Python', '继承', '多态', '编程语言']
摘要由CSDN通过智能技术生成

docker search mysql:5.7

docker pull porchn/php5.6-apache

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

卷容器实验

端口映射实验

容器互联实验

在容器里部署lnmp

找一个容器里面带有apache和php,有了这个镜像后,启动多个节点,启动三个节点,在宿主机起个数据卷,存网页的,还有个存数据库的,nignx做负载均衡,把论坛部署在目录下

三台虚拟机

192.168.132.101 192.168.132.102 192.168.132.103

101:拉取镜像

docker search mysql:5.7

docker pull porchn/php5.6-apache

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

mkdir mysqldata

[root@docker101 ~]# pwd

/root

[root@docker101 ~]# docker run --name=mysql -e MYSQL_ROOT_PASSWORD=123 -td -v /root/mysqldata/:/var/lib/mysql mysql:5.7

WARNING: IPv4 forwarding is disabled. Networking will not work.

041fb2a38d758379af442ec14eaebd8c59c9b59f46b812716ca37cf49c965e0d

[root@docker101 ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

041fb2a38d75 mysql:5.7 "docker-entrypoint.s…" 19 seconds ago Up 18 seconds 3306/tcp, 33060/tcp mysql

[root@docker101 ~]# mysql -u root -p123 -h 172.17.0.2

Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.7.34 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| sys |

+--------------------+

4 rows in set (0.01 sec)

MySQL [(none)]> exit

Bye

[root@docker101 ~]# ls

anaconda-ks.cfg a.sh docker-images mysqldata testsh webroot

[root@docker101 ~]# ls mysqldata/

auto.cnf ca.pem client-key.pem ibdata1 ib_logfile1 mysql private_key.pem server-cert.pem sys

ca-key.pem client-cert.pem ib_buffer_pool ib_logfile0 ibtmp1 performance_schema public_key.pem server-key.pem

容器里mysql 默认地址是:

root@041fb2a38d75:/var/lib/mysql# pwd

/var/lib/mysql

root@041fb2a38d75:/var/lib/mysql# ls

auto.cnf ca.pem client-key.pem ib_logfile0 ibdata1 mysql private_key.pem server-cert.pem sys

ca-key.pem client-cert.pem ib_buffer_pool ib_logfile1 ibtmp1 performance_schema public_key.pem server-key.pem

部署 php-apache

docker pull kinetiq/php5.6-apache

[root@docker101 webroot]# pwd

/root/webroot

[root@docker101 webroot]# cat index.html

hello i am

hello i am

[root@docker101 webroot]# cat index.php

$link=mysql_connect('172.17.0.2','root','123');

if ($link)

echo "Successfuly";

else

echo "Faile";

mysql_close();

?>

[root@docker101 webroot]# docker run -d -p 312:80 --name web -v /root/webroot/:/var/www/html kinetiq/php5.6-apache

5fc085afcff01f0b6e4ba45f069c0fc9c5a874190464f6f390d5cb1dc7aaf7d8

[root@docker101 webroot]# ls

index.html index.php

[root@docker101 webroot]# curl 172.17.0.3

hello i am

hello i am

[root@docker101 webroot]# curl 172.17.0.3/index.php

Successfuly[root@docker101 webroot]# ls

index.html index.php

导入农场 包

cd webroot

[root@docker101 webroot]# ls

farm-ucenter1.5.zip index.html index.php

unzip farm-ucenter1.5.zip

mv load/ farm

[root@docker101 webroot]# ls

farm farm-ucenter1.5.zip index.html index.php

[root@docker101 webroot]# cd farm

[root@docker101 farm]# ls

bbs home index.php install logo.jpg qqfarm.sql ucenter

[root@docker101 farm]# docker exec -it 8fc81b030f6d bash

root@8fc81b030f6d:/# find / -name php.ini

/etc/php5/apache2/php.ini

/etc/php5/cli/php.ini

root@8fc81b030f6d:/# vi /etc/php5/apache2/php.ini

[root@docker101 webroot]# chmod 777 -R farm

[root@docker101 webroot]# ll

total 21700

drwxrwxrwx. 6 root root 110 Jun 12 2011 farm

-rw-r--r--. 1 root root 22212558 Jul 30 17:45 farm-ucenter1.5.zip

-rwxr-xr-x. 1 root root 36 Jul 22 07:44 index.html

-rwxr-xr-x. 1 root root 122 Jul 20 15:58 index.php

访问

http://192.168.132.101:312/farm/install/index.php

密码123

可以重新装

[root@docker101 data]# ls

avatar backup cache config.inc.php index.htm install.lock logs tmp upgrade.lock view

[root@docker101 data]# rm -rf install.lock

nginx

[root@docker101 ~]# docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

6fffe8ff1f64 nginx "/docker-entrypoint.…" 12 minutes ago Up 12 minutes 80/tcp nginx

bbf29e12ff0b be0d62f7651b "supervisord -c /etc…" 6 hours ago Up 3 hours 0.0.0.0:312->80/tcp, :::312->80/tcp web

1d4bf6c17bfc mysql:5.7 "docker-entrypoint.s…" 3 days ago Up 29 hours 3306/tcp, 33060/tcp mysql

[root@docker101 ~]# docker run -d --name web1 -v /root/webroot/:/var/www/html php5.6-apache2

b36f0cd7cf02903daab18d3b0a5dd9656b9f9fac6b7486b4d3c136746ac25586

[root@docker101 ~]# docker run -d --name web2 -v /root/webroot/:/var/www/html php5.6-apache2

45ea6d59e35e17f1ac4f59b0a46879182fe09939c3ea0fbcd5dd3dd9dc92b65c

[root@docker101 ~]# docker run -d --name web3 -v /root/webroot/:/var/www/html php5.6-apache2

45ea6d59e35e17f1ac4f59b0a46879182fe09939c3ea0fbcd5dd3dd9dc92b65c

[root@docker101 ~]# curl 172.17.0.5

hello i am

hello i am

[root@docker101 ~]# curl 172.17.0.5/index.php

Successfuly[root@docker101 ~]# curl 172.17.0.6/index.php

Successfuly[root@docker101 ~]# curl 172.17.0.7/index.php

Successfuly[root@docker101 ~]#

[root@docker101 ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

php5.6-apache2 latest c7b58bdcb583 4 hours ago 513MB

php5.6-apache latest be0d62f7651b 5 hours ago 510MB

nginx latest 4cdc5dd7eaad 3 weeks ago 133MB

mysql 5.7 09361feeb475 5 weeks ago 447MB

kinetiq/php5.6-apache latest 664453a6acde 9 months ago 461MB

talentify/php-apache latest 8753b772e663 2 years ago 603MB

jacksonround/ansible latest 688353a31fde 4 years ago 447MB

tutum/centos latest 99a633ad346f 5 years ago 297MB

[root@docker101 ~]# docker run -d -p 8000:80 --name nginx nginx

[root@docker101 ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

6fffe8ff1f64 nginx "/docker-entrypoint.…" 2 minutes ago Up 2 minutes 80/tcp nginx

bbf29e12ff0b be0d62f7651b "supervisord -c /etc…" 5 hours ago Up 3 hours 0.0.0.0:312->80/tcp, :::312->80/tcp web

1d4bf6c17bfc mysql:5.7 "docker-entrypoint.s…" 3 days ago Up 29 hours 3306/tcp, 33060/tcp mysql

[root@docker101 ~]# docker exec -it 6fffe8ff1f64 bash

root@6fffe8ff1f64:/# apt-get update ----乌班图系统

apt-get install vim -y

root@6fffe8ff1f64:/# vim /etc/nginx/nginx.conf

root@docker101 ~]# docker exec -it 6fffe8ff1f64 bash

root@6fffe8ff1f64:/# vim /etc/nginx/conf.d/default.conf

root@46392c5720da:/# nginx -s reload

2021/08/03 08:05:04 [notice] 425#425: signal process started

输入网址:192.168.312.101:8000/farm

进入nginx 容器

apt-get install tcpdump - y

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王羲之的之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值