问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何通过docker容器安装LNMP服务器环境

发布网友 发布时间:2022-04-21 08:52

我来回答

1个回答

热心网友 时间:2022-04-07 10:58

安装 系统环境
硬件型号: ThinkPad T520
系统版本: ubuntu 14.04
CPU: i7
RAM: 8G
添加软件源

由于Ubuntu源中的最先版本为0.9无法满足要求,所以需要使用Docker的官方源
添加密钥:
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80
--recv-keys \
36A1D7869245C8950F966E92D8576A8BA88D21E9
源地址: deb http://get.docker.io/ubuntu docker main
添加源可以通过"软件和更新->其它软件->添加"来操作
添加后执行如下命令:
$ sudo apt-get update
$ sudo apt-get install lxc-docker-1.1.1
注: 官方给出的源地址为https连接的,但是总是出现ssl验证失败的错误,最后改为非
ssl连接之后正常
测试

执行如下命令获取容器镜像,创建一个实例并打开一个实例shell
$ sudo docker run -t -i centos:latest /bin/bash
注:第一次运行由于需要下载镜像可能需要多等一会儿
运行成功后会有一个新的shell提示符
制作镜像 要求
web容器安装Nginx+PHP服务
数据库容器安装Mysql服务
web服务和数据库分离
web服务容器可以访问数据库容器
制作nginx+php镜像

启动一个容器实例:
$ sudo docker run -t -i centos:latest /bin/bash
安装nginx与PHP:
Nginx可以使用源码或rpm包进行安装,PHP可以使用源码或yum安装.具体安装和配置这里
不进行具体讲述.
注:需要把nginx与php-fpm添加到系统服务中并设置开机启动
我设置的站点根目录为/opt/web
退出shell并执行如下命令制作镜像:
$ sudo docker commit -m="web service image nginx+php" -a="username" \
sudo docker ps -lq username/web:v1
这是一个组合命令:
sudo docker commit根据已有实例制作镜像
sudo docker ps -lq返回最后一个运行的实例id
已有镜像可以使用sudo docker images 查看
至此创建了第一个镜像 username/web:v1
制作mysql镜像

启动实例:
$ sudo docker run -t -i centos:latest /bin/bash
安装Mysql.
设置Mysql服务开机启动:
$ chkconfig mysqld on
启动mysql.
修改mysql登陆权限:
mysql> grant all privileges on . to 'root'@'%'
identified by 'dbpasswd';
mysql> flush privileges;
mysql服务默认只能本地连接,制作镜像的时候需要注意.否则是无法连接到数据库的.
退出shell并执行如下命令制作mysql容器镜像:
$ sudo docker commit -m="mysql service image" -a="username" \
sudo docker ps -lq username/mysql:v1
清除不再需要的实例:
$ sudo docker rm sudo docker ps -aq
启动并关联实例

web实例依赖与mysql,所以先打开一个mysql实例:
$ sudo docker run -d --name db username/mysql:v1
/sbin/init
-d参数是让实例以dameon的形式运行. /sbin/init是创建实例后执行的操作,此处为初
始化系统服务,包括运行mysql.
启动web实例并与数据库实例进行关联:
$ sudo docker run -d --name web --link db:db -p 8080:80 -v /path/to/src:/opt/web username/web:v1 /sbin/init
--link参数设置关联的容器,可以设置多个.关联之后会自动更新web容器的host,把db
的地址指向到数据库容器的地址.
-p 参数用来进行ip映射.此处把容器的80端口映射到了本地的8080端口.web服务可是
通过localhost:8080访问.
-v 参数把数据挂载到容器指定目录.此处为把站点源码目录挂载到容器的站点目录.
在web容器中访问数据库容器的mysql服务可以使用db这个主机地址.
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
哪个牌子复印机好 复印店用什么型号的复印机好 开复印店需要什么设备 家用打印复印机哪个好 如何分辨鞋底是不是空心格子底? Ubuntu10.04下安装Oracle11g 超市监控多少钱 超市防盗器要多少钱 超市防盗系统多少钱 智能存放柜管理系统 48小时核酸检测结果在哪里查询-48小时核酸检测怎么看结果 docker 在离线的容器中如何安装vim? 如何用Docker实现repo一个RPM文件 今天听了敬畏自己和敬畏同类,你的感受是什么?不少于100字 19元电信全球通 19元电信套餐咋缴费? 有人使用过19元电信套餐吗能讲一下吗? 电信19元套餐介绍 电信19元套餐资费 发现自己是电灯泡的时候是一种怎样的感觉? 19元电信套餐介绍 电信19元套餐包括什么? 北京电信19元套餐包含的流量多吗? 19元电信步步高套餐的具体内容是什么? 能讲讲上海的19元电信套餐吗? 电脑桌面壁纸的尺寸有多大? ACG音乐是什么 换显示器了,怎么修改桌面背景的图片分辨率大小? 电脑桌面的背景图片要什么格式或者什么分辨率? 电脑的壁纸是不是比电脑分辨率高就可以铺张满屏了啊 如何用一张超过电脑屏幕分辨率的图片做桌面 linux创建root 想要用docker创建镜像,用yum安装httpd时报错 docker容器内怎么装jmeter插件 CentOS系统中只下载RPM包而不进行安装的方法 ts 212能装docker吗 如何卸载linux下docker ACG音乐是什么音乐 生理期肚子疼 吃止疼片有没有坏处? 来例假肚子疼的厉害,可以吃止痛药吗 来例假肚子好痛? 生理期肚子疼的时候,吃止痛药会伤害身体吗? 来月经肚子痛,有什么办法缓解吗? 来例假了肚子疼的厉害怎么办啊? 月经期间肚子疼吃药有什么坏处 生理期肚子疼怎么办 月经肚子痛怎么缓解 14岁女孩生理期肚子疼得厉害吃什么药好 我来例假的时候肚子痛的厉害怎么办 来例假肚子疼的厉害怎么办