可视化部署说明
将已经准备好的Hyper-V虚拟机导入
本步骤不做特殊说明,按提示操作即可
本虚拟机中安装了
docker
服务及常用的image
并配置了开机启动; 安装了基本的常用工具:vim
screen
wget
curl
lrzsz
等
已安装的 docker
镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat 8.5.50-jdk8 6fa48e047721 3 days ago 507MB
tomcat 8.5.50-jdk11 f425297f8aa7 3 days ago 624MB
rabbitmq 3.8.1 843e6712e712 6 weeks ago 150MB
openjdk 11 a7e47afa852b 8 weeks ago 605MB
mysql 5.7.28 cd3ed0dfff7e 2 months ago 437MB
nginx 1.16.1 b50b08c36b60 2 months ago 126MB
openjdk 8 e8d00769c8a8 3 months ago 488MB
ansible/ansible centos7 0731001e75a9 2 years ago 669MB
配置虚拟机系统
虚拟机开机之后默认的 IP
为 10.44.111.123
子网掩码为 255.255.255.0
( 24
) 网关为 10.44.111.1
需要将以上网络配置为当前网络的信息,以下为操作步骤
- 启动虚拟机并连接虚拟机
- 输入用户名/密码:
develop
/develop
- 配置网络文件,默认的网卡为
eth0
[develop@adsl-172-10-0-101 ~]$ sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0 # 如需要输入密码,请按第二步密码输入 TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="none" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="eth0" UUID="d4c2b640-0314-44ff-83f6-9926d49fefe1" DEVICE="eth0" ONBOOT="yes" IPADDR="10.44.111.123" PREFIX="24" GATEWAY="10.44.111.1" DNS1="180.76.76.76" IPV6_PRIVACY="no" # 通常情况下需要修改IP, 子网掩码, 网关; 分别为: IPADDR PREFIX GATEWAY # 修改完成之后按 Shift + : ---> wq ---> Enter
- 重启网络服务
# 重启网络服务 sudo systemctl restart network # 查看ip ip a
说明
用户名 | 密码 |
---|---|
root | 2019@eagle |
develop | develop |
nginx-html-path:
/home/develop/html/
关键字
以下使用的 $PWD
均为当前目录, 也就是: /home/develop
部署 nginx
前端服务
网络配置完成之后即可通过 ssh
方式连接虚拟机,并把程序上传至虚拟机服务器中;以下使用 XShell
工具操作
- 运行
docker
中的nginx
镜像docker run -id -v $PWD/html:/usr/share/nginx/html --name nginx -p 80:80 --restart=always nginx:1.16.1 # -id 创建一个以交互模式运行容器,后台运行 # -v 绑定数据卷,这里将nginx中页面挂载到当前目录的 html 中;也可以将配置目录和文件(/etc/nginx/nginx.conf)、日志目录(/var/log/nginx/) 挂载到宿主机上 # --name nginx 为容器指定一个名称 # -p 指定端口映射 # --restart=always 开机启动
- 配置防火墙
[develop@adsl-172-10-0-101 ~]$ sudo firewall-cmd --zone=public --add-port=80/tcp --permanent [develop@adsl-172-10-0-101 ~]$ sudo firewall-cmd --reload # 重启 `nginx` 容器 [develop@adsl-172-10-0-101 ~]$ docker container restart nginx
- 修改所属用户或用户组
[develop@adsl-172-10-0-101 ~]$ sudo chown develop:develop $PWD/html
- 添加测试文件
[develop@adsl-172-10-0-101 ~]$ touch $PWD/html/index.html
- 测试
[develop@adsl-172-10-0-101 ~]$ wget 127.0.0.1 --2019-12-17 15:47:06-- http://127.0.0.1/ 正在连接 127.0.0.1:80... 已连接。 已发出 HTTP 请求,正在等待回应... 200 OK 长度:0 [text/html] 正在保存至: “index.html” [ <=> ] 0 --.-K/s 用时 0s 2019-12-17 15:47:06 (0.00 B/s) - 已保存 “index.html” [0/0]) [develop@adsl-172-10-0-101 ~]$ # 表示成功
- 部署程序
将程序代码
display-page.zip
拷贝到$PWD/html
目录中并解压[develop@adsl-172-10-0-101 ~]$ mv display-page.zip $PWD/html [develop@adsl-172-10-0-101 ~]$ cd $PWD/html && unzip display-page.zip
部署 mysql
数据库服务
- 运行 docker 中的 mysql 镜像
docker run -id --restart=always -e MYSQL_ROOT_PASSWORD=2019@eagle --name mysql -v /mysql/data:/var/lib/mysql -v /etc/localtime:/etc/localtime -p 3306:3306 mysql:5.7.28 # -e 设置环境变量 mysql密码为 2019@eagle
- 配置防火墙
[develop@adsl-172-10-0-101 ~]$ sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent [develop@adsl-172-10-0-101 ~]$ sudo firewall-cmd --reload # 重启 `mysql` 容器 [develop@adsl-172-10-0-101 ~]$ docker container restart mysql
- 测试
mysql
连接
netstat -ntulp | grep 80 netstat -ntplu | grep docker
No Comments