如何搭建docker虚拟机测试服

 更新时间:2025年08月23日 08:57:49   作者:北七星  
文章介绍如何搭建Docker虚拟机测试服,通过隔离环境、安装CentOS镜像并映射端口,配置安全组和域名转发,实现本地开发测试连接测试服数据库和Redis,感兴趣的朋友跟随小编一起学习吧

一、需求分析

优点:测试服与正式服环境隔离,配置简单,多个开发者可以共用一个测试数据库和redis

二、安装镜像

因为正式服是装了宝塔面板,所以直接在宝塔面板上安装docker。

因为需要的虚拟机linux要有完整的系统命令,docker安装镜像为 centos/systemd 

以特权模式创建容器,并把虚拟机内的 22,3306,6379端口映射到实体机的 22000,13306,16379端口

docker run -itd --privileged=true -p 22000:22 -p 13306:3306 -p 16379:6379 --name mytest systemd:latest

三、虚拟机内Linux配置和软件安装

#配置yum为阿里云的源
rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum repolist 
#查看linux时区
timedatectl
<strong>#设置时区为上海(中国标准时间)</strong>
sudo timedatectl set-timezone Asia/Shanghai
timedatectl
#虚拟机安装java
java -version
yum list java*jdk-devel
yum install java-1.8.0-openjdk-devel -y
#修改ls/ll显示的时间格式  2023/07/31 15:30:00
vi ~/.bash_profile
# 文件末尾添加
export TIME_STYLE='+%Y/%m/%d %H:%M:%S'
# 使配置立即生效
source ~/.bash_profile
#查看虚拟机的IP,通常是172.17.0.2
ifconfig
#查看运行程序的端口
yum install -y net-tools
netstat -nlpt
<strong>#安装ssh</strong>
yum install -y openssh-server
# 编辑 SSH 配置文件
vi /etc/ssh/sshd_config
#启动和设置开机启动
systemctl start sshd
systemctl enable sshd
systemctl status sshd
#重置root密码(是从容器进来的,本来密码不知道)
passwd root
#在实体机中测试虚拟机中的端口连接
ssh root@172.17.0.2
exit
<strong>#安装mysql</strong>
#!注意 yum install -y mariadb-server 安装的是mysql5.5,版本很低
#下载mysql源安装包
yum install -y wget
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
#--nogpgcheck    不校验数字签名
yum -y install mysql-server --nogpgcheck
#启动
systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld
#MySQL 5.7 安装后会生成一个临时 root 密码:
cat /var/log/mysqld.log | grep password
mysql_secure_installation
#输入上面查到的默认密码,设置新密码(至少8位,必须包含 大小写字母、数字、特殊字符)
#进入mysql
mysql -p'密码'
show databases;
#开放root用户远程登录
UPDATE mysql.user SET Host='%' WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;
quit
<strong>#安装redis</strong>
#Redis 不在默认的 CentOS 仓库中,需先添加 EPEL仓库
yum install -y epel-release
yum install -y redis
systemctl start redis
systemctl enable redis
systemctl status redis
#进入redis
redis-cli
SET hello world
GET hello
quit
#开放外部访问  vi /etc/redis.conf
# 注释掉bind(默认仅监听本地)
# bind 127.0.0.1
# 关闭保护模式
protected-mode no
# 设置密码
requirepass 密码
#然后重启redis
systemctl restart redis
<strong>#安装nginx</strong>
yum install -y nginx
systemctl start nginx
systemctl enable nginx
systemctl status nginx
#nginx配置文件在/etc/nginx/nginx.conf
#虚拟机中的nginx不需要https
#此镜像中没有防火墙,不需要打开防火墙端口
#firewall-cmd --permanent --add-port=22/tcp
#firewall-cmd --permanent --add-port=3306/tcp
#firewall-cmd --permanent --add-port=6379/tcp
#firewall-cmd --permanent --add-port=80/tcp
#firewall-cmd --reload
#清理yum的硬盘空间
yum clean all

四、回到实体机中

测试端口和开放防火墙端口

telnet 172.17.0.2 3306
quit
telnet 172.17.0.2 6379
quit
telnet 172.17.0.2 80
quit
#开放防火墙端口
firewall-cmd --permanent --add-port=22000/tcp
firewall-cmd --permanent --add-port=13306/tcp
firewall-cmd --permanent --add-port=16379/tcp
firewall-cmd --reload

阿里云等的安全组,添加开放端口(最好指定IP)

#服务器配置系统hosts,把demo域名指向docker内网IP

vi /etc/hosts
172.17.0.2 demo.batsing.com

Nginx中配置vhost,将demo域名转发到域名自身

server {
    listen            80;
    server_name        demo.batsing.com;
    location / {
        proxy_pass    http://demo.batsing.com;
        proxy_set_header X-Real-IP $remote_addr;                                                   
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
    }
}

#虚拟机中配置网站
#参考一般的网站配置即可

五、本地开发与测试

日常用 batsing.com:22000 登录测试服,更新代码重启等

本地开发测试,数据库连接远程的 batsing.com:13306 ,Redis连接远程的 batsing.com:16379

到此这篇关于搭建docker虚拟机测试服的文章就介绍到这了,更多相关docker虚拟机测试服内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker跨主机网络(overlay)的实现

    Docker跨主机网络(overlay)的实现

    这篇文章主要介绍了Docker跨主机网络(overlay)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Docker如何安全地停止和删除容器

    Docker如何安全地停止和删除容器

    这篇文章主要介绍了Docker如何安全地停止和删除容器,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • Docker如何解决tomcat容器启动成功,无法访问的问题

    Docker如何解决tomcat容器启动成功,无法访问的问题

    这篇文章主要介绍了Docker如何解决tomcat容器启动成功,无法访问的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • Docker教程之使用dockerfile生成镜像

    Docker教程之使用dockerfile生成镜像

    这篇文章主要介绍了Docker教程之使用dockerfile生成镜像的相关资料,需要的朋友可以参考下
    2022-11-11
  • 云原生之使用Docker部署homer静态主页的方法步骤

    云原生之使用Docker部署homer静态主页的方法步骤

    本文主要介绍了云原生之使用Docker部署homer静态主页的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • docker快速安装rabbitmq的方法步骤

    docker快速安装rabbitmq的方法步骤

    这篇文章主要介绍了docker快速安装rabbitmq的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 详解SpringBoot项目docker环境运行时无限重启问题

    详解SpringBoot项目docker环境运行时无限重启问题

    这篇文章主要介绍了详解SpringBoot项目docker环境运行时无限重启问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Docker的安装以及更换仓库源详细图文教程

    Docker的安装以及更换仓库源详细图文教程

    Docker是一个开源的应用容器引擎,它允许开发者打包他们的应用以及依赖包到一个可移植的容器中,下面这篇文章主要给大家介绍了关于Docker的安装以及更换仓库源的相关资料,需要的朋友可以参考下
    2024-07-07
  • Docker容器跨主机通信中直接路由方式详解

    Docker容器跨主机通信中直接路由方式详解

    在本篇文章里我们给各位整理的是一篇关于Docker容器跨主机通信中直接路由方式详解内容,有需要的朋友们可以参考下。
    2019-10-10
  • docker启动mysql5.7服务详细说明

    docker启动mysql5.7服务详细说明

    这篇文章主要给大家介绍了关于docker启动mysql5.7服务的相关资料,文中通过代码示例介绍的非常详细,对大家的学习或者工作具有一定的参考价值,需要的朋友可以参考下
    2023-09-09

最新评论