Docker搭建LNMP环境实战(03):VMware安装CentOS

Docker搭建LNMP环境实战(03):VMware安装CentOS

1、创建新的虚拟机,选择CentOS7镜像文件,并启动安装

启动VMware,创建新的虚拟机

在这里插入图片描述

图1 选择典型安装即可

选用最大最全的CentOS镜像文件:CentOS-7-x86_64-Everything-1804.iso;安装版本可以到网上搜索,也可以从下面的百度云盘共享地址下载,下载,但由于百度云盘上传有单个文件的大小限制,所以使用压缩文件分卷压缩了:https://pan.baidu.com/s/1UZQJl5ebFq0a_Wz6BAMODw

在这里插入图片描述

图2 镜像文件选择

根据自己的习惯设置好虚拟机CentOS操作系统的安装位置

在这里插入图片描述

图3 设置CentOS操作系统的安装位置

一路yes,到CentOS安装窗口

在这里插入图片描述

图4 Install CentOS 7,一路回车

在这里插入图片描述

图5 选择中文-简体

在这里插入图片描述
图6 安装位置需要点击进入一下

在这里插入图片描述
图7 可不用修改,直接点击完成即可

在这里插入图片描述
图8 点击开始安装

在这里插入图片描述

图9 设置root用户密码

选择最小安装,不用安装图形界面即可满足使用。设置好root用户密码,并请牢记,可先不 “创建用户” 。后面有个较长时间的安装过程,请耐心等待。安装完成后请重启虚机,在虚拟机的CentOS窗口里输入用户名、密码登录即可。

2、设置虚拟机网络参数

2.1、调通内外网

不知道为什么,虚拟机网卡每次初始安装都不能自动上网
在这里插入图片描述

图10 ping 百度的网站和百度的地址均不成功

在这里插入图片描述
图11 移除默认网卡

在这里插入图片描述
图12 准备添加一个新网卡

在这里插入图片描述
图13 添加新网卡的操作

在这里插入图片描述

图14 新网卡的网络配置

测试一下:
在这里插入图片描述

图15 ping 外网

外网通了!
在虚拟机的shell里输入:ip addr,得到网络相关信息,如下:
在这里插入图片描述

图16 虚机的IP地址

其中inet后面的192.168.16.128即为该虚拟机的内部地址(图中是我安装后的地址,实际安装中会不同!),用Windows+R“cmd”的黑窗口测试一下:
在这里插入图片描述

图17 宿主机ping虚拟机

虚机可以被宿主机访问到,内网也通了!

2.2、将虚拟机设置为静态IP

到此,虚拟机的网络可以正常使用,但又发现一个问题,就是在以后多次重启虚拟机后,虚拟机的IP地址会自动变化,对于后续的使用造成很多不便,所以对虚拟机进行网卡配置,使用静态IP,这样IP就不会变动了。

在这里插入图片描述

图18 VMware主菜单 - 编辑 - 虚拟网络编辑器

在这里插入图片描述
图19 选择VMnet8网卡,点击“更改设置”按钮

在这里插入图片描述
图20 选中VMnet8,不勾选DHCP的选项

在这里插入图片描述
图21 设置VMnet8的NAT设置

在这里插入图片描述

图22 注意此处红框里的网关IP
  • 记录好虚拟机网卡配置参数,备用:

IP地址:192.168.16.128

子网掩码:255.255.255.0

网关:192.168.16.2

  • 进入虚拟机目录:/etc/sysconfig/network-scripts

找到网卡ens37的配置文件,如果没有则建立一个

编辑ens37的配置文件,在shell里输入命令行:vi ifcfg-ens37,配置文件的内容如下:

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=static

DEFROUTE=yes

IPADDR=192.168.16.128

NETMASK=255.255.255.0

GATEWAY=192.168.16.2

DNS1=8.8.8.8

DNS2=114.114.114.114

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=ens37

UUID=d8d5d984-d163-4c69-aac6-97578ba8889d

DEVICE=ens37

ONBOOT=yes

其中UUID可以用下面命令生成:uuidgen ens37

  • 配置宿主机网卡

在这里插入图片描述

图23 在Windows宿主机里配置VMnet8网卡

在这里插入图片描述

图24 完成配置

至此,网络设置完成!

3、安装配置xshell

VMware里的shell个人感觉非常难用,所以建议使用xshell进行虚拟机的管理,建议使用最新的xshell6。

3.1、xshell的下载和安装

xshell官网提供了个人和教育用的免费版本,只需要留个邮件就可以了,同时会限制同时打开的页面不超过5个,但个人用已经完全足够了。官网地址为:https://www.netsarang.com/zh/free-for-home-school/;也可以从下面的百度网盘分享地址直接下载:https://pan.baidu.com/s/1lyqRIAT4cYdignelu4UxzA;

点击下载的执行文件,出现安装欢迎界面
在这里插入图片描述

图25 欢迎界面

安装很简单没有悬念,基本上是一路“下一步”即可。

3.2、xshell的配置

运行xshell6,如果以前安装过老版本,会提示是否从老版本导入配置参数,课直接导入
在这里插入图片描述

图26 导入以前版本数据

为了更好地说明xshell的配置,不导入数据,从头开始进行用户配置。如果出现提示购买许可证的窗口,不用管,直接关闭就可以。在会话管理窗口新建会话:

在这里插入图片描述

图27 会话管理

在这里插入图片描述
图28 配置会话参数,点击确定保存

在这里插入图片描述
图29 连接会话

在这里插入图片描述
图30 保持密钥

在这里插入图片描述
图31 输入用户名,勾选“记住用户名”

在这里插入图片描述
图32 输入密码,勾选“记住密码”

点击确定,xshell就会成功连接到虚拟机了,可以在xshell里进行虚拟机的命令操作。注意:以后在CentOS系统里进行的shell操作,如无特殊说明,都是默认采用xshell来进行的。


上一篇:Docker搭建LNMP环境实战(02):Win10下安装VMware

下一篇:Docker搭建LNMP环境实战(04):安装VMwareTools共享文件夹


  • 31
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
# docker搭建lnmp环境 <!-- TOC --> - [docker搭建lnmp环境](#docker搭建lnmp环境) - [一、Dockerfile定制镜像](#一dockerfile定制镜像) - [二、docker-compose](#二docker-compose) - [三、docker-compose编排lnmp环境](#三docker-compose编排lnmp环境) - [1、mysql](#1mysql) - [2、redis](#2redis) - [3、mongo](#3mongo) - [4、nginx](#4nginx) - [5、php](#5php) - [6、完整版](#6完整版) - [四、参考](#四参考) <!-- /TOC --> 有收获的话请**加颗小星星**,没有收获的话可以 **反对** **没有帮助** **举报**三连 ## 一、Dockerfile定制镜像 ```bash # FROM 指定基础镜像 FROM 镜像 FROM php:7.2-fpm # RUN 执行 RUN or RUN ["可执行文件", "参数1", "参数2"] RUN echo 'Hello, Docker!' > /usr/share/nginx/html/index.html RUN ["php", "-S", "0.0.0.0:8080"] # COPY 复制文件 COPY ... COPY swoole-4.2.10.tgz /home COPY nginx.conf /etc/nginx/nginx.conf # ADD 复制文件或目录,如果是.tgz,会被解压缩 ADD ... ADD nginx.conf /etc/nginx/nginx.conf # CMD 容器启动 CMD echo $HOME => CMD [ "/bin/sh", "-c", "echo $HOME" ] CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ] # ENTRYPOINT 入口点 ENTRYPOINT ["docker-entrypoint.sh"] 存在 ENTRYPOINT 后,CMD 的内容将会作为参数传给 ENTRYPOINT # ENV 环境变量 ENV ENV MYSQL_ROOT_PASSWORD root # ARG与ENV差不多 ARG 所设置的构建环境环境变量,在将来容器运行时是不会存在这些环境变量的 ENV MYSQL_ROOT_PASSWORD root # VOLUME 匿名卷 VOLUME ["", ""...] VOLUME ["/data"] # EXPOSE 暴露端口 EXPOSE [...] EXPOSE 80 443 # WOEKDIR 指定工作目录,进入容器后的落地目录 WORKDIR WORKDIR /var/www # USER 指定当前用户 USER USER root ``` ## 二、docker-compose - 服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。 - 项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。 ## 三、docker-compose编排lnmp环境 ### 1、mysql 这里我们使用了mysql5.5版本,没其它用意,相比5.7以上版本,占内存和硬盘最小的一个版本 我们准备了一个`my.cnf`作为额外配置,这里我修改了数据库的时区 ```cnf [mysqld] default-time-zone = '+8:00' ``` ```Dockerfile FROM mysql:5.5 COPY my.cnf /etc/mysql/conf.d EXPOSE 3306 ``` ### 2、redis 我们使用准备的配置文件`redis.conf`覆盖容器默认启动的配置文件,修改了`ip绑定`和`密码` ```conf bind 0.0.0.0 requirepass root ``` ```Dockerfile FROM redis:latest COPY redis.conf /usr/local/etc/redis/redis.conf CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ] EXPOSE 6379 ``` ### 3、mongo mongodb我们没有特殊处理 ```Dockerfile FROM mongo:latest EXPOSE 27017 ``` ### 4、nginx 我们准备了一份`nginx.conf`和虚拟目录`conf.d`,为了以后可以动态的配置网站的代理和负载均衡 还有一个日志目录,放在外层`logs`目录里面,记录nginx的访问日志 特别注意的是`fastcgi_pass php:9000;`而不是`fastcgi_pass 127.0.0.1:9000;`,目前自己也没明白 ```Dockerfile FROM nginx:alpine COPY nginx.conf /etc/nginx/nginx.conf EXPOSE 80 ``` ### 5、php php算是这里面最难搞定的,因为我们需要额外的添加php扩展,虽然php的docker官方提供了`docker-php-ext-configure`, `docker-php-ext-install`, `docker-php-ext-enable`,还是有些扩展需要通过`手动编译`或者`pecl`安装 由于pecl官网下载慢,我们事先下载好了几个需要的扩展 php-fpm用的是debian的linux系统,下载也很慢,我们备用了阿里云的镜像`sources.list` 我们还准备了php的默认配置`php.ini`和`opcache.ini` 比如swoole扩展安装,记得安装包用完后清理,还有得用`COPY`命令,`ADD`会解压缩 ```Dockerfile # swoole COPY swoole-4.2.10.tgz /home RUN pecl install /home/swoole-4.2.10.tgz && \ docker-php-ext-enable swoole && \ rm /home/swoole-4.2.10.tgz ``` ### 6、完整版 ```yml version: '3' networks: frontend: driver: bridge backend: driver: bridge volumes: mysql: driver: local mongo: driver: local redis: driver: local services: php: build: ./php volumes: - ${WORKER_DIR}:/var/www ports: - 9100:9000 depends_on: - mysql - redis - mongo networks: - backend nginx: build: ./nginx volumes: - ${WORKER_DIR}:/var/www - ./logs/nginx:/var/log/nginx - ./nginx/conf.d:/etc/nginx/conf.d ports: - 8000:80 depends_on: - php networks: - frontend - backend mysql: build: ./mysql environment: - MYSQL_ROOT_PASSWORD=root volumes: - ${DATA_PATH}/mysql:/var/lib/mysql ports: - 3310:3306 networks: - backend mongo: build: ./mongo environment: - MONGO_INITDB_ROOT_USERNAME=root - MONGO_INITDB_ROOT_PASSWORD=root ports: - 27010:27017 volumes: - ${DATA_PATH}/mongo:/data/db networks: - backend redis: build: ./redis volumes: - ${DATA_PATH}/redis:/data ports: - 6310:6379 networks: - backend ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

tanbushi

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

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

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

打赏作者

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

抵扣说明:

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

余额充值