目录
1.容器运行游戏需求分析
2.静态编译游戏服务
3.手动创建游戏镜像
docker
的三大核心概念
镜像
静态的一组环境的集合
运行:创建容器,在容器中运行
XXXX
手动创建:
下载原始镜像
在基于该镜像运行
bash
,装所需软件
将装好软件的容器提交为新的镜像
脚本创建:
写
Dockerfile
:规定镜像创建的过程
构建镜像
4.编写游戏启动脚本
容器
运行时的一组环境,基于某个镜像创建
容器的修改不会影响镜像
运行容器:
守护运行
-d
端口映射
: -p
外端口号
:
内端口号
共享文件系统:
-v
外绝对路径
:
内绝对路径
容器开始于要运行的进程,结束于进程退出
删掉所有容器:
仓库(
dockerhub
)
类似
github
,是一个存储镜像的公共仓库
docker pull
作者
/
镜像名
:
标签名 拉去镜像
docker push
分享镜像到仓库中(分享之前先改名
--
》
docker tag
)
5.脚本创建游戏服务器镜像
脚本创建
docker
镜像
1.
指定基础镜像(
FROM XXXX
)
2.
装环境(
RUN
,
WORKDIR
,
COPY
)
3.
指定执行点(
ENTRYPOINT
)
ENTRYPOINT ["XXX"]
:
XXX
是且仅是镜像所运行的程序
CMD
命令指定你的内容会作为
XXX
的参数
run
镜像名
xxxx
:
xxxx
会作为
XXX
的参数
CMD ["XXX"]
镜像缺省运行
XXX
程序
run
镜像名
xxxx
:容器会执行
xxxx
程序
6.登录服务器架构选择
离线分发镜像
导出容器:
docker export -o XXX.tar af85:
将容器中固化的内容导
出
导入镜像:
docker import XXX.tar my_image:my_tag
:导入的镜像
只包含原容器内的文件系统,缺失了镜像执行点,暴露端口,原镜
像的构建历史
查询程序依赖的动态库
ldd
程序名
do
1
cdocker rm `docker ps -aq`
静态编译游戏服务程序(部分依赖库静态链接到程序中的动
态编译)
原因:不想在容器中装诸多依赖项
查当前程序的依赖项
添加所有 依赖项
.a
到
Makefile
的依赖中
去掉
Makefile
中
-l
指定的链接库
7.http协议初识
8.http报文分析
脚本创建游戏服务器镜像
有可执行的程序,有姓名文件,有启动脚本
指定工作路径
拷贝文件
暴露端口
指定执行点(执行脚本)
登陆服务器架构选择
BS
架构
效率要求不高,客户端向和服务器之间的数据交互比较单一:一条
请求对应一条回复
http
协议承载数据
9.nginx简介和安装
http
协议
超(基于字符编码多媒体)文本(字符串)传输(基于短连接
tcp
)
协议
请求或回复头:
属性名:属性值
http
请求(浏览器
---
》服务器)
GET
请求(只有请求头)
POST
请求(头
+
身体):头和身体直接有两个回车
http
回复(服务器
---
》浏览器)
类型决定于请求类型
包含头和身体
头:状态吗(
200---
》成功)
身体:
html
文件(显示为网页)
10.nginx配置静态页面
Nginx
概念:轻量化
web
服务器(高效的处理
http
报文)
apt
或者
yum
安装
配置文件目录:
/etc/nginx/
日志配置文件:
/var/log/nginx/
测试命令:
nginx -t
重新加载配置文件:
nginx -s reload
nginx
配置静态页面
创作一个
html
文件
将
html
文件放到
server
配置段指定的
root
目录下
location
配置段:
index html
文件名(指定首页)
浏览器输入
192.168.64.148/XXXX.html----->
服务器会向浏览器返
回
XXXX.html
的内容
11.nginx配置反向代理
nginx
配置反向代理
规划
url
和对应的网页服务器
proxy_pass
被代理的服务
;