Docker部署LNMP环境

关闭防火墙,设置自定义网络

systemctl stop firewalld
systemctl disable firewalld
setenforce 0 docker network create --subnet=172.18.0.0/16 --opt "com.docker.network.bridge.name"="docker1" mynetwork

部署nginx(容器IP 为 172.18.0.10)

mkdir /opt/nginx
cd /opt/nginx/ 上传 nginx-1.12.0.tar.gz、wordpress-4.9.4-zh_CN.tar.gz 到 /opt/nginx/ 目录中
mkdir /opt/nginx/html
tar zxvf wordpress-4.9.4-zh_CN.tar.gz -C /opt/nginx/html
 1 vim Dockerfile
2
3 FROM centos:7
4 MAINTAINER this is nginx image <xyc>
5 RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make
6 RUN useradd -M -s /sbin/nologin nginx
7 ADD nginx-1.12.0.tar.gz /usr/local/src/
8 WORKDIR /usr/local/src/nginx-1.12.0
9 RUN ./configure \
10 --prefix=/usr/local/nginx \
11 --user=nginx \
12 --group=nginx \
13 --with-http_stub_status_module && make && make install
14 ENV PATH /usr/local/nginx/sbin:$PATH
15 ADD nginx.conf /usr/local/nginx/conf/
16 ADD wordpress-4.9.4-zh_CN.tar.gz /usr/local/nginx/html/
17 RUN chmod 777 -R /usr/local/nginx/html/
18 EXPOSE 80
19 EXPOSE 443
20 ENTRYPOINT [ "/usr/local/nginx/sbin/nginx", "-g", "daemon off;" ]
docker build -t nginx:lnmp .

docker run -d --name nginx -p 80:80 -v /opt/nginx/html:/usr/local/nginx/html --net mynetwork --ip 172.18.0.10 nginx:lnmp

修改nginx配置文件

部署mysql(容器IP 为 172.18.0.20)

mkdir /opt/mysqld
cd /opt/mysqld 上传 mysql-boost-5.7.20.tar.gz 到 /opt/mysqld 目录中
 1 vim Dockerfile
2
3 FROM centos:7
4 MAINTAINER this is mysql image <lv>
5 RUN yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake make
6 RUN useradd -M -s /sbin/nologin mysql
7 ADD mysql-boost-5.7.20.tar.gz /usr/local/src/
8 WORKDIR /usr/local/src/mysql-5.7.20/
9 RUN cmake \
10 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
11 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
12 -DSYSCONFDIR=/etc \
13 -DSYSTEMD_PID_DIR=/usr/local/mysql \
14 -DDEFAULT_CHARSET=utf8 \
15 -DDEFAULT_COLLATION=utf8_general_ci \
16 -DWITH_INNOBASE_STORAGE_ENGINE=1 \
17 -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
18 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
19 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
20 -DMYSQL_DATADIR=/usr/local/mysql/data \
21 -DWITH_BOOST=boost \
22 -DWITH_SYSTEMD=1 && make -j4 && make install
23 RUN chown -R mysql:mysql /usr/local/mysql/
24 ADD my.cnf /etc/my.cnf
25 RUN chown mysql:mysql /etc/my.cnf
26 ENV PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
27 WORKDIR /usr/local/mysql/
28 RUN bin/mysqld \
29 --initialize-insecure \
30 --user=mysql \
31 --basedir=/usr/local/mysql \
32 --datadir=/usr/local/mysql/data
33 RUN cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
34 EXPOSE 3306
35 RUN systemctl enable mysqld
36 VOLUME [ "/usr/local/mysql" ]
37 CMD /usr/sbin/init

vim my.cnf
[client]
port = 3306
socket = /usr/local/mysql/mysql.sock [mysql]
port = 3306
socket = /usr/local/mysql/mysql.sock [mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
1 vim run.sh
2 #!/bin/bash
3 /usr/local/mysql/bin/mysqld
4 systemctl enable mysqld
5
6
7 docker build -t mysql:lnmp .
8
9 docker run --name=mysql -d --privileged -v /usr/local/mysql --net mynetwork --ip 172.18.0.20 mysql:lnmp /usr/sbin/init

部署php(容器IP 为 172.18.0.30)

1 mkdir /opt/php
2 cd /opt/php
3
4 上传 php-7.1.10.tar.bz2 到 /opt/php 目录中
vim Dockerfile

FROM centos:7
MAINTAINER this is php image <wl>
RUN yum -y install gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel \
gcc gcc-c++ make pcre-devel
RUN useradd -M -s /sbin/nologin nginx
ADD php-7.1.10.tar.bz2 /usr/local/src/
WORKDIR /usr/local/src/php-7.1.10
RUN ./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip && make && make install
ENV PATH /usr/local/php/bin:/usr/local/php/sbin:$PATH
ADD php.ini /usr/local/php/lib/
ADD php-fpm.conf /usr/local/php/etc/
ADD www.conf /usr/local/php/etc/php-fpm.d/
EXPOSE 9000
ENTRYPOINT [ "/usr/local/php/sbin/php-fpm", "-F" ]

1 docker build -t php:lnmp .
2 docker run --name=php -d -p 9000:9000 --volumes-from mysql --volumes-from nginx --net mynetwork --ip 172.18.0.30 php:lnmp
3
4 docker run --name=mysql -d --privileged --device-write-bps /dev/sda:10M -v /usr/local/mysql --net mynetwork --ip 172.18.0.20 mysql:lnmp
5 docker exec -it mysql /bin/bash
mysql
create database wordpress;
grant all privileges on wordpress.* to 'wordpress'@'%' identified by 'xcc123'
grant all privileges on *.* to 'root'@'%' identified by 'xcc123';
flush privileges;

浏览器访问:

http://20.0.0.40/wordpress/index.php

Docker部署lnmp 实战 (多注意配置文件,不管访问试试换个浏览器)的更多相关文章

  1. 使用 Docker 部署 LNMP 并搭建 wordpress

    准备 系统版本:CentOS Linux release 7.4.1708 (Core)   内核版本:3.10.0-693.el7.x86_64    IP:192.168.31.43    可访问 ...

  2. Docker部署LNMP完整教程

    在Docker中部署LNMP环境可以分为以下几个步骤: 安装Docker 创建镜像 创建Dockerfile build Docerfile 复制/修改配置文件 运行镜像,并映射端口 为了方便分布式部 ...

  3. Centos7搭建Docker部署LNMP

    1.首先呢先更新yum源 yum update 2.1.安装docker存储库 yum install -y yum-utils \ device-mapper-persistent-data \ l ...

  4. docker部署LNMP架构

    环境要求: IP hostname 192.168.1.1 node1 项目规划: 容器网段:172.16.10.0/24 NGINX:172.16.10.10 MySQL:172.16.10.20 ...

  5. 【docker】docker部署spring boot服务 选择配置文件启动

    默认启动命令: docker run --name swapping -itd --net=host -v /etc/localtime:/etc/localtime:ro -v /etc/timez ...

  6. CenOS7 docker部署lnmp环境

    Step1:下载lnmp镜像 [root@docker html]# docker pull winstonpro/lnmp Step2:启动lnmp镜像的docker实例 [root@docker ...

  7. 【笔记】Docker部署Nginx,并修改配置文件

    先来一个删除命令:) root@fudonghai:~# rm -rf /usr/docker/nginx/{conf.d,html,log} root@fudonghai:~# rm -r /usr ...

  8. docker部署的nginx非80端口无法访问

    请检查nginx容器是否只开启了80端口映射!!! 请检查nginx容器是否只开启了80端口映射!!! 请检查nginx容器是否只开启了80端口映射!!! 如果你访问的端口在nignx容器已经开启了端 ...

  9. 使用Docker 一键部署 LNMP+Redis 环境

    使用Docker 部署 LNMP+Redis 环境 Docker 简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linu ...

随机推荐

  1. C#中ref关键字的用法总结

    ref表示引用的意思,C#中它有多种用法,这里简单总结一下: 1.按引用传递参数 具体可见:C#中的值传递与引用传递(in.out.ref) 2.引用局部变量 引用局部变量指的是在变量声明时使用ref ...

  2. solr -创建 core

    需要进入solr安装目录的bin 里,solr start 启动 后,才可以生成core solr create -c [core的名字] 如:solr create -c mycore1 生成位置在 ...

  3. antd-vue中给table表格整行加点击事件

    <a-table :columns="columns" :dataSource="data" :loading="loading" : ...

  4. linux 设置root 密码

    指令意思: sudo -i  是 切换到root权限 ,如果没有密码,则直接可以操作,有密码则会要求输入密码 sudo passwd root  是修改密码指令 ,回车后 提示输入新密码 新密码需要输 ...

  5. [Win32] UAC用户账户控制 (提权)

    最近写程序时遇到一个问题,就是当一个程序需要管理员权限才能正常运行该怎么办? 通过查阅多方资料,我总结出来几个比较实用的办法(每种办法实现方法不同,同时功能上也有一些小小的差异) 方法一(批处理脚本) ...

  6. Maven+ajax+SSM实现编辑修改

    转载自:https://www.cnblogs.com/kebibuluan/p/9017754.html 3.尚硅谷_SSM高级整合_使用ajax操作实现修改员工的功能 当我们点击编辑案例的时候,我 ...

  7. Nginx 基础入门

    目录 Nginx 基础入门 1.Nginx简介 1.1.相关名词解释 2.Nginx优势 3.Nginx部署 4.Nginx配置文件 5.Nginx模块 6.Nginx配置文件 6.1.Locatio ...

  8. 《剑指offer》面试题67. 把字符串转换成整数

    问题描述 写一个函数 StrToInt,实现把字符串转换成整数这个功能.不能使用 atoi 或者其他类似的库函数.   首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. ...

  9. ES6随笔D1

    1.数值解构赋值 ES6 允许按照一定模式,可以从数组中提取值,按照对应位置,对变量赋值,这被称为解构. 解构赋值的规则是,只要等号右边的值不是对象或数组,就先将其转为对象.由于undefined和n ...

  10. 【发布开源代码】铁威马NAS存储上实现的视频文件浏览

    具体介绍请看:https://github.com/ahfuzhang/tnas_video_web x86机器的windows/linux/mac机器应该都能使用 效果如下: 按月浏览视频 视频太多 ...