安装 docker-compose 配置 lnmp
1、安装docker-compose
确保已经安装了docker
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
2、安装mysql
拉取镜像
docker pull mysql
运行MySQL
docker run -p 3306:3306 --name mysql_test -v $PWD/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=passwd -d --privileged=true mysql
命令说明
-p 3306:3306:将容器的3306端口映射到主机的3306端口
-v PWD/mysql/data:/var/lib/mysql:将主机当前目录下的mysql/data文件夹挂载到容器的/var/lib/mysql 下,在mysql容器中产生的数据就会保存在本机mysql/data目录下
-e MYSQL_ROOT_PASSWORD=passwd:初始化root用户的密码
-d 后台运行容器
--name 给容器指定别名
--privileged=true centos7 可能会碰到权限问题,需要加参数
进入容器
docker exec -it mysql_test /bin/bash
进入数据库查看
root@39e0abed7609:/# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.12 MySQL Community Server - GPL Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.02 sec) mysql>
3、安装PHP
vim Dockerfile FROM php:5.6-fpm
RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng12*-dev \
vim \
&& docker-php-ext-install pdo_mysql \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install gd \
构造镜像
docker build -t="php-fpm5.6/v2" .
使用该镜像启动容器
docker run -d -p 9000:9000 -v /var/www/html/:/var/www/html/ --name php-with-mysql --link mysql_test:mysql --volumes-from mysql_test --privileged=true php-fpm5.6/v2
参数解析
-v 将本地磁盘上的php代码挂载到docker 环境中,对应docker的目录是 /var/www/html/
--name 新建的容器名称 php-with-mysql
--link 链接的容器,链接的容器名称:在该容器中的别名,运行这个容器是,docker中会自动添加一个host识别被链接的容器ip
--privileged=true 权限问题
进入容器
docker exec -it php-with-mysql /bin/bash
cd /var/www/html/ && ls
4、安装nginx 镜像
vim default.conf
server {
listen 80;
server_name localhost;
location / {
root /var/www/html;
index index.html index.htm index.php; # 增加index.php
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/html;
}
location ~ \.php$ {
root /var/www/html; # 代码目录
fastcgi_pass phpfpm:9000; # 修改为phpfpm容器
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 修改为$document_root
include fastcgi_params;
}
}
运行容器
docker run -d --link php-with-mysql:phpfpm --volumes-from php-with-mysql -p 80:80 -v /var/www/nginx/conf/default.conf:/etc/nginx/conf.d/default.conf --name nginx-php --privileged=true nginx
参数解析
--link php-with-mysql:phpfpm 将php容器链接到nginx容器里来,phpfpm是nginx容器里的别名。
--volumes-from php-with-mysql 将php-with-mysql 容器挂载的文件也同样挂载到nginx容器中
-v /var/www/nginx/conf/default.conf:/etc/nginx/conf.d/default.conf 将nginx 的配置文件替换,挂载本地编写的配置文件 docker exec -it nginx-php bash
root@32de01dbee49:/# cd /var/www/html/&&ls
index.php mysql.php testmysql.php webview
docker-compose
[root@cc home]# tree compose-lnmp/
compose-lnmp/
|-- docker-compose.yml
|-- html
| |-- index.html
|-- mysql
| `-- Dockerfile
|-- nginx
| |-- conf
| | `-- default.conf
| `-- Dockerfile
`-- phpfpm
`-- Dockerfile
[root@cc compose-lnmp]# cat docker-compose.yml
nginx:
build: ./nginx
ports:
- "80:80"
links:
- "phpfpm"
volumes:
- /home/compose-lnmp/html/:/var/www/html/
- /home/compose-lnmp/nginx/conf/default.conf:/etc/nginx/conf.d/default.conf
phpfpm:
build: ./phpfpm
ports:
- "9000:9000"
volumes:
- ./html/:/var/www/html/
links:
- "mysql"
mysql:
build: ./mysql
ports:
- "3306:3306"
volumes:
- /home/compose-lnmp/mysql/data/:/var/lib/mysql/
environment:
MYSQL_ROOT_PASSWORD : 123456
[root@cc compose-lnmp]# cat mysql/Dockerfile
FROM mysql:5.6
[root@cc compose-lnmp]# cat nginx/Dockerfile
FROM nginx:latest
RUN apt-get update && apt-get install -y vim
[root@cc compose-lnmp]# cat nginx/conf/default.conf
server {
listen 80;
server_name localhost;
location / {
root /var/www/html;
index index.html index.htm index.php; # 增加index.php
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/html;
}
location ~ \.php$ {
root /var/www/html; # 代码目录
fastcgi_pass phpfpm:9000; # 修改为phpfpm容器
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 修改为$document_root
include fastcgi_params;
}
}
[root@cc compose-lnmp]# cat phpfpm/Dockerfile
FROM php:5.6-fpm
RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng12*-dev \
vim \
&& docker-php-ext-install pdo_mysql \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install gd \
执行docker-compose
[root@cc compose-lnmp]# docker-compose up -d
安装 docker-compose 配置 lnmp的更多相关文章
- 从零开始一步一步搭建Ubuntu Server服务器、修改数据源、安装Docker、配置镜像加速器、Compose部署Gitlab服务
场景 最终目的是使用Docker Compose部署一个Gitlab服务. 效果 注: 博客: https://blog.csdn.net/badao_liumang_qizhi关注公众号 霸道的程序 ...
- docker安装与测试 及 安装docker compose
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口 ...
- Linux系统上安装docker + Compose并创建WordPress
安装docker可参考我的另一篇文章 安装Compose Docker Compose 是 Docker 官方编排(Orchestration)项目之一, 负责快速在集群中部署分布式应用. 方法一 1 ...
- kali安装docker以及配置阿里云镜像加速
1.需求 最近需要用到docker比较多,遂安装使用下,第一次用docker搭建测试环境,不得不说,docker真香.期间遇到了比较多奇奇怪怪的问题,网上的教程也比较多比较乱,遂记录一下. 2.安装d ...
- 安装docker及配置Android开发环境
安装docker 官方原来的安装docker的脚本https://get.docker.com/已经过时,现在使用的是https://get.docker.com/,命令如下: curl -s htt ...
- Docker docker-compose 配置lnmp开发环境
1.安装docker yum -y install dockersystemctl start dockersystemctl enable docker 安装docker-compose https ...
- ubuntu 安装 docker 并配置镜像加速(使用 apt-get 进行安装)
ubuntu 安装docker CentOS docker安装 https://blog.csdn.net/weixin_44953227/article/details/108597310 你需要这 ...
- Docker:银河麒麟系统/Ubuntu/arm64-离线安装Docker,配置自启
下载离线包 离线安装包地址:https://download.docker.com/linux/debian/dists/stretch/pool/stable/ 注意: amd64是处理器64位 复 ...
- Windows安装Docker & Docker-Compose & 配置docker私有仓库
一定要给windows先创建软连接,不然系统盘会爆表的: mklink /j .docker D:\Administrator\.docker Win7安装Docker Dockerfile # FR ...
- kali虚拟机安装VMTools、更新源、安装docker、配置sqli-labs
一.安装VMTools: 传送门:关于安装VMTools 跟其他版本的虚拟机安装VMTools没什么区别,也得连网(我是kali用dhcp开nat模式) 之后按照上面的链接根据博主的步骤一步一步来即可 ...
随机推荐
- LODOP中打印项水平居中简短问答
相关博文:LODOP打印项水平居中(超文本纯文本居中)LODOP打印超文本有边距不居中的情况2(超文本居中的一种) LODOP表格水平居中3(宽度为百分比)(超文本居中的一种) LODOP打印图片水平 ...
- [LeetCode] 282. Expression Add Operators 表达式增加操作符
Given a string that contains only digits 0-9 and a target value, return all possibilities to add bin ...
- 使用 Node.js 写一个代码生成器
背景 第一次接触代码生成器用的是动软代码生成器,数据库设计好之后,一键生成后端 curd代码.之后也用过 CodeSmith , T4.目前市面上也有很多优秀的代码生成器,而且大部分都提供可视化界面操 ...
- 15 SpringMVC的入门案例
1.入门程序的需求 2.搭建开发环境 <1>Create New Project <2>创建一个webapps <3>设置maven路径和解决maven项目创建过慢 ...
- (六)linux 学习 -- 从 shell 眼中看世界
The Linux Command Line 读书笔记 - 部分内容来自 http://billie66.github.io/TLCL/book/chap08.html 文章目录 字符展开 `*` 路 ...
- Connection to api@localhost failed. [08001] Could not create connection to d
pycharm 换成2019之后连接数据库用户名密码数据库名字都没错,就是连接不上去,网上百度一下,试试将URL后面拼接 ?useSSL=false&serverTimezone=UTC 发现 ...
- THUPC&CTS&APIO2019:Far Away
流水账~ THUPC nmdwsmduliu! THUPC Day -INF~Day -2 大概就是自己做题和每周两次的考试,lsy和fcw两个外校的来吊打我们qwqqq THUPC Day -1 Z ...
- [LOJ#3119][Luogu5400][CTS2019]随机立方体(容斥+DP)
https://www.cnblogs.com/cjyyb/p/10900993.html #include<cstdio> #include<algorithm> #defi ...
- idea多级目录不展开的问题
遇见了一个坑,idea新建的包,和它的上级包重叠在了一起,无法形成树状结构 原因呢,还是因为自己的不细心了,解决方案很简单,下面的是原情况 解决方案,点击左侧栏右上角的设置图表,注意看红框内 把第一行 ...
- ViewState到底是什么
ViewState是“客户端”状态保持的一种方案,ViewState是.net中特有的,其他的编程语言,如:Java.PHP中是没有ViewState这个概念的. 举个简单的例子ViewState的例 ...