您的位置:澳门皇冠金沙网站 > 操作系统 > 使用docker搭建游戏私服之win7下部署docker环境【澳

使用docker搭建游戏私服之win7下部署docker环境【澳

2019-10-03 02:13

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

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

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

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

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

3 关注的概念

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

澳门皇冠金沙网站首页 1

Paste_Image.png

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

澳门皇冠金沙网站首页 2

Paste_Image.png

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

澳门皇冠金沙网站首页 3

Paste_Image.png

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

澳门皇冠金沙网站首页 4

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虚拟机的状态:

澳门皇冠金沙网站首页 5

Paste_Image.png

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

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

澳门皇冠金沙网站首页 6

提示.png

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

查看虚拟机的环境变量:

docker-machine env default

澳门皇冠金沙网站首页 7

Paste_Image.png

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

docker-machine env default | Invoke-Expression

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

澳门皇冠金沙网站首页 8

Paste_Image.png

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

澳门皇冠金沙网站首页 9

docker.png

澳门皇冠金沙网站首页 10

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
该安装包含了所需要的所有内容。

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

澳门皇冠金沙网站首页 11

安装界面1.png

澳门皇冠金沙网站首页 12

安装界面2.png

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

澳门皇冠金沙网站首页 13

安装界面3.png

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

澳门皇冠金沙网站首页 14

安装界面4.png

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

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,点击“”设置“,再点击“共享文件夹”,点击右边的“+”标志

澳门皇冠金沙网站首页 15

Paste_Image.png

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

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

来试试:

澳门皇冠金沙网站首页 16

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文件:

澳门皇冠金沙网站首页 17

Paste_Image.png

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

     touch test.sh

澳门皇冠金沙网站首页 18

Paste_Image.png

再看windows目录下的变化:

澳门皇冠金沙网站首页 19

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

本文由澳门皇冠金沙网站发布于操作系统,转载请注明出处:使用docker搭建游戏私服之win7下部署docker环境【澳

关键词: