云顶娱乐平台 72

云顶娱乐平台:使用docker搭建游戏私服之win7下部署docker环境

云顶娱乐平台 1

真要这么做会有很多后续问题需要程序去收尾,这当然不是我们想要做的,于是我在接受到这个需求的时候立马想到了可以使用Docker解决这个问题,只要在机器上部署好了Docker环境,游戏服务器打包成docker镜像,需要使用的时候载入即可,镜像里面就是完整的游戏服务器内容,只依赖docker环境,不依赖其他任何外部条件,这样我们需要做的工作就是为策划的机器搭建docker环境,以及发布我们的游戏服镜像。

   首先要下载并安装扩展增强包,Oracle
VM VirtualBox Extension Pack。

VMBox 设置Ubuntu Nat连接以及win主机共享文件夹,vmboxubuntu

菜鸟的linux上手之路,由于最近要学习python,得有点linux的基本知识,所以……把这玩意儿装上了到底该怎么玩啊!

 

设置Ubuntu Nat连接:

  1. 在虚拟机端输入

    #ps aux | grep sshd

如果进程列表里有/user/sbin/sshd -D,则表明SSH守护进程已经启动。

 云顶娱乐平台 2

如果没有该进程,需要手动安装sudo apt-get install ssh;

 

  1. 在VMBox管理器中,设置——网络——高级——端口转发,添加一个规则;

 云顶娱乐平台 3

 

  1. 为win端口设置防火墙规则;

 在控制面板系统和安全Windows
防火墙中,点击高级设置,新建主机用于转发端口的入站和出站规则,这个比较简单

 

4.
SSH连接,在win端下载Putty,打开putty.exe,输入主机名和端口即可连接虚拟机os;

 云顶娱乐平台 4

云顶娱乐平台 5

 

共享文件夹设置:

  1. 安装VMBox增强工具:

开启虚拟机后,在虚拟机菜单栏点击设备——安装增强功能,如果没有弹出对话框,但是虚拟机下方光盘已挂载,按照如下设置:

云顶娱乐平台 6

 

#sudo apt-get install dkms
#mount /dev/cdrom /mnt
#cd /mnt
#mkdir bdshare (这里创建一个挂载文件夹bdshare,可以自行设定)
#./VBoxLinuxAdditions.run

 

  1. 设置共享文件夹:

在主机创建一个用于共享的文件夹,在VMBox管理器中,设置——共享文件夹,添加一个共享文件夹,这里取名为Share

 云顶娱乐平台 7

 

3.
在虚拟机根目录下执行下面的命令,即可连接到共享文件夹;

#mount -t vboxsf Share /mnt/bdshare

 

  1. 在主机端往文件夹里放点东西,就能在虚拟机端显示出来;

云顶娱乐平台 8

 

云顶娱乐平台 9

 

*5. 每次开机时都要执行3中的设置,要执行自动挂载请参考其他相关文章。

设置Ubuntu
Nat连接以及win主机共享文件夹,vmboxubuntu
菜鸟的linux上手之路,由于最近要学习python,得有点linux的基本知识,所以……把这…

win10这个奇葩,共享文件夹变得非常困难。

最近在忙着搭建游戏私服的事情,因此前面的关于游戏业务篇师徒系统的内容会迟一点写,这个坑怎么说都还是要填的,不要错过任何一次记录的机会。

VirtualBox下载地址:

SMB 1.0
的组件,安装完大概就能连同了。不过网络邻居还是无法发现的(不知道怎么设置),要手写路径登陆,然后弹出用户登录框,输入guest,密码留空,就行了。如果你还是无法连通,可能是账户或者共享没设置好,这些都是小问题。

1 下载与安装Docker Toolbox

首先介绍一下docker在windows的支持,引用Docker 中文指南的描述:

因为Docker 引擎使用的是Linux内核特性,所以我们需要在 Windows 上使用一个轻量级的虚拟机 (VM) 来运行 Docker。我们使用 Windows的Docker客户端来控制 Docker 虚拟化引擎的构建、运行和管理 。
为了简化这个过程,我们设计了一个叫 Boot2Docker 的应用程序,你可以通过它来安装虚拟机和运行 Docker。
虽然你使用的是 Windows 的 Docker 客户端,但是 docker 引擎容器依然是运行在 Linux 宿主主机上(现在是通过Virtual box)。

目前docker对win10的支持已经做的很好了,但是对于低版本的win7相对来说还是有很多问题,win10直接下载https://www.docker.com/docker-windows
Docker for Windows直接安装即可,但是win7的安装方法完全不同。

首先我们需要下载官方提供的Docker
Toolbox安装包,地址为:https://www.docker.com/products/docker-toolbox
该安装包含了所需要的所有内容。

然后点击安装,出现如图示:

云顶娱乐平台 10

安装界面1.png

云顶娱乐平台 11

安装界面2.png

安装路径可以选择其它盘,我安装在了D盘。

云顶娱乐平台 12

安装界面3.png

这是安装包具备的组件,其中Docker client,Docker
Machine是一定要安装的,Virtualbox和Git如果事先安装了可以不勾,不过virtualbox需要5.0版本以上,版本4是不行的,Kitematic是Docker的图形化管理界面,也勾上吧,虽然我不用。

云顶娱乐平台 13

安装界面4.png

最后一直Next,点finish就完成了安装。

                                                 
 云顶娱乐平台 14

其他不说,关键点在于获取虚拟机的
ip,我的虚拟机系统是winxp,虚拟机本身可以上网。拿到ip,用这个ip还是无法访问\ip
的共享文件夹,因为win10需要安装一个组件:

3 关注的概念

上面的步骤已经完成了docker在win7上的安装,现在已经可以使用了,在使用之前我们先理清楚需要经常关注的几个概念,Linux上使用docker和win7还是有区别的,主要是平台的问题。

云顶娱乐平台 15

Paste_Image.png

首先,我们的docker
daemon是运行在virtualBox虚拟机上的,virtualbox安装了boot2docker
Linux,里面集成了Docker引擎,win7主机上安装了Docker
client,可以执行docker命令:

云顶娱乐平台 16

Paste_Image.png

但是是不能直接访问docker Daemon的:

云顶娱乐平台 17

Paste_Image.png

你很容易会想到,要想在win7的终端使用docker
操作镜像容器只需要通过ssh连接上虚拟机就可以实现我们想要的操作,就像连接远程服务器一样,boot2docker默认的账户和密码是docker,
tcuser,虚拟机的ip为192.168.99.100如图示:

云顶娱乐平台 18

Paste_Image.png

但是这样做和直接在虚拟机安装linux,再安装docker也没什么区别是吧,为了简化这个过程,Docker官方提供了一个强大的工具:docker-machine

官方描述:

Docker Machine so you can run Docker Engine commands from Windows terminals

docker-machine
主要用于管理虚拟机,包括虚拟机的创建、删除、环境变量设置以及可以直接连接到虚拟机进行对docker的操作。

我们通过使用windows的powershell来尝试下docker-machine命令,(dos的cmd实在体验太差了),“windows”

  • r,输入运行程序:powershell。

比如查看当前的docker虚拟机的状态:

云顶娱乐平台 19

Paste_Image.png

可以看到当前有一台名为default的docker虚拟机在运行,设备为virtualbox,并且其ip为192.168.99.100。

查看docker虚拟机的ip可以直接通过
docker-machine ip

云顶娱乐平台 20

提示.png

在本机访问docker里面的服务不能直接通过127.0.0.1,需要通过虚拟机的ip来访问。

查看虚拟机的环境变量:

docker-machine env default

云顶娱乐平台 21

Paste_云顶娱乐平台:使用docker搭建游戏私服之win7下部署docker环境。Image.png

由上面命令的提示可以知道,可以通过

docker-machine env default | Invoke-Expression

命令建立powershell与linux虚拟机的连接,就像通过ssh连接一样,但是不用通过密码验证,这个时候就可以在windows终端直接使用docker命令了:

云顶娱乐平台 22

Paste_Image.png

到了这里你应该知道要想部署镜像只需要写一个powershell脚本就能满足需求了吧(_)。

 
         不过,我们可以用虚拟机菜单栏的 “设备-〉安装增强功能”。

本文主要介绍的在win7安装时遇到的问题以及简单使用。

                                                   
 云顶娱乐平台 23

4 使用示例

docker环境搭建好之后,我们来跑一个web容器,然后在win7本地浏览器访问试试,在外网可以直接通过docker pull nginx拉取nginx镜像,我的已经拉好了,然后通过载入镜像,运行容器

docker run --name some-nginx -d -p 8080:80 nginx

-name 表示给容器取别名,用于区分,名字不能重复

-d 表示容器在后台运行

-p
表示映射本地端口8080到容器的80端口,注意这里的本地指的是虚拟机ip,不是127.0.0.1

然后我们在本地浏览器访问:

云顶娱乐平台 24

Paste_Image.png

 

5 映射本地目录到容器

前面提到,策划测试需要频繁去改动静态文件,比如策划表,改改道具的数量,属性等,所以需要将容器的目录映射到windows的本地文件夹,这个目录假设用来存放策划表,那么就可以实现在windows查看修改文件,而服务运行在docker容器。

docker提供了数据卷来达到映射的目的,通过-v选项指定,如果是在Linux上使用docker,比如想要映射本地/home/tmp目录到容器的/tmp,可以这样:

docker run --name some-nginx  -v /home/tmp:/tmp -d -p 8080:80 nginx

但是在windows能不能直接在powershell直接通过-v指定本地目录呢?比如

 docker run -ti  -v /d/users:/tmp centos /bin/bash

映射d盘的users目录,这样能达到映射的目的吗?答案肯定是不行的,为什么呢?因为容器是运行在virtualbox虚拟机内的,指定的
/d/users目录virtualbox是不知道的,它无法识别。

玩过虚拟机的都知道要想虚拟机和主机共享目录需要对虚拟机进行设置,将主机的目录共享到虚拟机的某个目录,这也是目录映射,然后再将该目录映射到容器,这样就达到映射本地目录到容器的目的。

我们打开virtualbox,点击“”设置“,再点击“共享文件夹”,点击右边的“+”标志

云顶娱乐平台 25

Paste_Image.png

然后设置共享文件夹的路径和名称,并且选择“自动挂载”和固定分配,然后在这个设置的共享目录里面就可以随意创建想要的目录,然后映射到容器了。

有同学不禁会问这个还要去打开图形界面设置共享文件夹很麻烦,Docker
Toolbox安装完成是默认共享了c/Users到虚拟机的,所以不想重新设置可以映射/c/Users的目录,像我需要在部署的时候直接通过运行脚本的形式运行容器,就不会再去重新设置了,虽然也可以通过VBoxManage命令来直接创建共享文件夹,但是不再去研究这个了,/c/Users已经可以满足需求。

来试试:

云顶娱乐平台 26

Paste_Image.png

在Users创了Docker的目录,并新建了cv.txt文件,然后挂载到容器:

docker run -ti  -v /c/Users/docker:/home centos /bin/bash

-t 表示开启伪终端
-i 表示打开标准输入
/bin/bash 表示运行bash程序

执行成功之后会直接进入centos容器内部,然后我们去/home看看能不能找到cv.txt文件:

云顶娱乐平台 27

Paste_Image.png

发现cv.txt文件出现了容器的home目录下,然后在该目录创建一个文件,

     touch test.sh

云顶娱乐平台 28

Paste_Image.png

再看windows目录下的变化:

云顶娱乐平台 29

Paste_Image.png

大功告成!

结语:
ok,到此为止就介绍完毕了搭建过程,写的有点啰嗦,有同学可能会觉得你这个整个过程下来也是很麻烦呀,是的,第一次安装的时候确实需要费点时间的,但是只要把常见的错误总结下,安装完Docker
Toolbox安装包之后的行为,可以通过脚本去控制所有的操作,这样部署docker环境策划只需要安装一个软件,执行一个脚本,以后更新游戏服的时候只需要拉取一下服务器上的镜像或者通过其他的形式去更新,这种简捷只有你真正用过了才会领略到,关于使用docker还有诸多好处,在这就不一一列举了,实在是表达能力不太好呀。

接下来还会介绍配置基础环境镜像,以及最后整个基于Docker私服的搭建过程,嗯,在这里又埋了一个坑了,一定会填的O(∩_∩)O。

以上是在win7部署docker的过程,希望对大家有所帮助,有什么问题可以留言讨论,大家一起学习。

Regards,
codjust.

参考文章:
http://blog.csdn.net/tina_ttl/article/details/51372604
http://www.jianshu.com/p/d809971b1fc1
http://www.cnblogs.com/studyzy/p/6113221.html
https://bjddd192.github.io/docker/2017/02/28/win7%E4%B8%8B%E4%BD%BF%E7%94%A8docker-toolbox.html
http://www.widuu.com/chinese_docker/installation/windows.html

  点击右侧“+”号添加共享文件夹,编辑共享文件夹路径和名称,并勾选“固定分配”选项,然后点击确定,如图所示:

云顶娱乐平台 30

 

2 初始化Docker ToolBox

安装完毕后会在桌面出现三个快捷方式:

云顶娱乐平台 31

快捷方式

其中Docker Quickstart
Terminal是初始化脚本,可以去安装目录查看所有的组件:

云顶娱乐平台 32

安装目录.png

里面的start.sh就是桌面上的Docker Quickstart
Terminal,可以看到是这是一个shell脚本,也就是需要bash来执行,因此在安装的时候如果win7没有安装Git的话一定要勾上,并且记住其安装位置,一般会在:

云顶娱乐平台 33

bash

在执行这个脚本之前,我们先打开该脚本简单看看其做了什么事:

云顶娱乐平台 34

start.sh.png

简单理解一下发现脚本主要初始化了各个工具的状态,以及设置了代理,其中virtualbox是第一个被检查的,因为需要通过VBoxManage创建虚拟机,因此在执行脚本之前我们先看看virtualbox是否正常,打开桌面的:

云顶娱乐平台 35

Paste_Image.png

如果出现下图所示

云顶娱乐平台 36

Paste_Image.png

那么恭喜你,可以进入下一步执行脚本了。(第一次的打开是都没有的,只要打开不报错就表示虚拟机没问题)
但是有部分机器可能会出现一些错误,比如我的机器就出现了:

云顶娱乐平台 37

Paste_Image.png

获取 VirtualBox COM 对象失败,应用程序将被中断。
这个错误的解决方法有几种,
(1)兼容性问题

云顶娱乐平台 38

Paste_Image.png

右击virtualbox图标属性中,兼容模式运行这个程序,选择除了win7之外的版本。

(2)a. 打开开始菜单—-然后点击运行—输入
"D:Program FilesOracleVirtualBoxVBoxSVC.exe“ /reregserver
然后按回车,(注意virtualbox的安装目录,我这里安装在D:Program
FilesOracleVirtualBox目录,视情况而定,改成自己的目录)
b.再打开开始菜单—运行—输入
regsvr32 "C:Program FilesOracleVirtualBoxVBoxC.dll"
regsvr32如果提示不存在可以去找一下自己系统的存放路径,使用绝对路径来使用,一般会在:

云顶娱乐平台 39

Paste_Image.png

(3)修改注册表,一般这个方法是最有效的
引用这位博主的博文:http://blog.csdn.net/zp_00000/article/details/70207445

主要是修改修改注册表中如下的两项:

HKEY_CLASSES_ROOTCLSID{00020420-0000-0000-C000-000000000046}
HKEY_CLASSES_ROOTCLSID{00020424-0000-0000-C000-000000000046}

分别修改上面两项中的 InprocServer32的默认值为
C:Windowssystem32oleaut32.dll
具体操作可以跳转到上面链接,我这里就不赘述了。

virtualBox可以正常运行之后我们点击执行启动脚本,可以点击桌面上的快捷方式也可以点击start.sh,我启动的是桌面的,
启动后如图示;

云顶娱乐平台 40

Paste_Image.png

这个过程会提示创建虚拟机,ssh等内容,在创建虚拟机过程时需要提供boot2docker.iso镜像,路径默认是在

C:Users用户名.dockermachinecache

启动脚本时会提示找不到,需要在线下载,这个过程会非常慢,其实Docker
ToolBox安装包是已经提供了boot2docker.iso了的,

云顶娱乐平台 41

Paste_Image.png

我们只要手动将该文件拷贝到指定目录再重新去启动就不需要再联网下载了。

可能还会有同学拷贝了boot2docker.iso镜像,启动脚本时会提示该镜像不是最新的版本,并且会告诉你最新的版本,还是需要联网下载,这个如果是在外网搭建的话就直接让其联网下载,不过可能会很慢,因为我是在内网搭建,所以需要在外网下载好最新的boot2docker.iso镜像,再拷贝到

C:Users用户名.dockermachinecache

下载路径为:https://github.com/boot2docker/boot2docker/releases
选择最新的:

云顶娱乐平台 42

Paste_Image.png

再次启动start.sh脚本,这个时候等待其初始化完毕即可,应该不会再遇到什么问题了,最后初始化成功如下:

云顶娱乐平台 43

Paste_Image.png

 

简单介绍一下搭建游戏私服的需求,这主要是给策划和测试使用的,因为每个策划关注的内容,每个测试测试的点都不一样,都需要去修改测试服务器的配置或者策划表,以达到他们想要测试或验证的目的,这就不能都在一台测试服去频繁改动,当然也不可能为每个策划或者测试都配一台服务器(不要钱呀)。那么可不可以在他们的机器去搭建环境,在他们自己的机器部署游戏服务器呢?当然是可以的,不过这会搞死程序(O(∩_∩)O),比如说我们的游戏服务器使用的java,你感受到了为那么多个策划测试去部署java环境以及服务器依赖的组件的恐怖了吗!!!

 

既然使用了docker,为什么要在windows下使用呢?因为策划测试用的都是windows呀(O(∩_∩)O),镜像还是会发布在linux。

16、启动进入win7系统,安装完成。

docker.png

                                                 
  云顶娱乐平台 44

docker是什么?docker的应用以及非常广了,就不再这里介绍了,不知道的同学可以看看这个:http://www.docker.org.cn/book/docker/what-is-docker-16.html

                                                 
 云顶娱乐平台 45

  在win7中打开共享设置:“我的电脑-》网络-》打开共享设置”。

                                   
  云顶娱乐平台 46

  为要连接到的连接和文件夹指定驱动器号。驱动器最好选择除“Z:
”以外的驱动器, “Z: ”作为来安装其他镜像文件时预留的驱动器,

13、在这个界面,执行win7系统解压过程;

   
切换到虚拟机Win7操作系统界面,打开“计算机”,选择“映射网络驱动”选项,如图所示:

二、虚拟机VirtualBox安装win7全过程

 

 

                                                 
  云顶娱乐平台 47

6、虚拟硬盘大小自行设置,比如40GB,点击创建;

 

1、打开VirtualBox虚拟机,点击左上角的“新建”,类型选择Microsoft
Windows,版本选择Windows 7(32-bit),输入名称Windows
7,并设置存储路径,下一步;  

  A:在Ubuntu、Debian、Deepin、Linux
Mint:

                                                   
云顶娱乐平台 48

7、新建了一个win7虚拟机,点击“设置”;

 

 

     
                       
 云顶娱乐平台 49

安装步骤:双击下载后的deb文件,由Ubuntu软件中心打开,点击安装即可。

  

2、内存默认为512MB,可以自行修改;

14、完成操作后,重启进入这个主菜单,输入H或点击【从硬盘启动】;

  此时,如果Virtualbox安装在Windows,即主机为Windows时,就Virtualbox成功支持了USB、PXE了。
  但是对于安装在Linux里的Virtualbox,即主机为Linux时,此时还差一步,即把用户加到vboxusers组里。

 

     
                                 
 云顶娱乐平台 50

  添加你的用户名,如你的用户名位mhx,则改成:vboxusers:x:126:mhx

  su

  vi
/etc/group

  找到这一行:vboxusers:x:126:

  添加你的用户名,如你的用户名位mhx,则改成:vboxusers:x:126:mhx

  然后保存退出。
  保存修改后,重启计算机,打开终端,输入id看看用户次要组里是不是有了vboxusers呢??

     
                 云顶娱乐平台 51

  这样打开Virtualbox,启动虚拟系统,分配USB设备就行了。

  Windows中:

  Windows7中的效果:

     
                   
  云顶娱乐平台 52

                                   
 云顶娱乐平台 53

  Linux中:

  Ubuntu下的效果:

                                   
 云顶娱乐平台 54

 

  接下来,U盘就可以使用了。

 

 

通过上述的步骤操作之后,我们就在VirtualBox虚拟机上装上win7系统了,安装步骤并不难,相信大家都能学会。

 

 

      

win7下载地址

                                                 
 云顶娱乐平台 55

                                                 
  云顶娱乐平台 56

 

 

12、完成分区后,双击【自动恢复win7到C盘】,弹出对话框,点击确定;

 

                         
  云顶娱乐平台 57

4、虚拟硬盘文件类型选择默认的VDI,下一步;     

  下载地址:,如下图:

9、返回管理器,点击“启动”,进入这个界面,输入2或点击2运行pe系统;

 

 

  然后保存退出。

1、共享文件夹

3、选择现在创建虚拟硬盘,点击创建;

                                                 
  云顶娱乐平台 58

10、进入pe系统,双击【硬盘分区DiskGenius】,点击硬盘—快速分区;

11、设置分区数目和分区大小,确定,开始分区;

                                                  
云顶娱乐平台 59

本文下载该版本:virtualbox-5.1_5.1.28-117968~Ubuntu~precise_i386.deb

  先点击“管理-》设置”;

  • 安装虚拟机VirtualBox
  • 虚拟机VirtualBox安装win7全过程
  • 虚拟机共享文件夹、U盘

  

 

 

 

 

                                                 
 云顶娱乐平台 60

 

     
                                 
 云顶娱乐平台 61

     
                                 
  云顶娱乐平台 62

           
                           
  云顶娱乐平台 63

5、硬盘容量选择动态分配;

  打开终端:sudo
gedit /etc/group

 

     
                                 
 云顶娱乐平台 64

     
                           
 云顶娱乐平台 65

  映射完成后,在“计算机”中就可以看到映射成功的网络驱动器,快速访问主机中的文件夹。

                                                 
  云顶娱乐平台 66

否则可能无法安装其他镜像文件,如图所示:

 

8、点击存储—“没有盘片”—右侧光盘图标—选择一个虚拟光盘文件,选择win7
iso镜像文件;

 

 

                                                     云顶娱乐平台 67 

  注:
系统装完之后,是该装驱动了,不过虚拟机里的显卡、网卡等都是虚拟出来的,哪会有配套的驱动。。。

                                                 
 云顶娱乐平台 68

                                                   云顶娱乐平台 69

 

                                               
  云顶娱乐平台 70

 

  然后点击扩展里面的黄色图标,选择扩展包路径(有时候扩展包下载好后,会自动识别安装)。

                                                 
 云顶娱乐平台 71

一、安装虚拟机VirtualBox

 

15、在这个界面,执行win7系统安装过程;

 

 

 

目录:

  安装好扩展包后,做如下设置:

  切换到“Oracle VM
VirtualBox管理器”主页面,选择相应的win7系统,然后选择“设置”选项,再选择“共享文件夹”选项,如图所示:

  找到这一行:vboxusers:x:126:

 

2、共享U盘

  安装步骤如下:

 

三、虚拟机共享文件夹、U盘

                                       
 云顶娱乐平台 72

  B:在Redhat
、Fedora、Centos: