Docker使用(搭建2048游戏、搭建nginx服务)

来源:互联网 发布:手游代充平台 知乎 编辑:程序博客网 时间:2024/06/07 15:04

2048镜像百度盘地址:https://pan.baidu.com/s/1b9rXCy
nginx镜像百度盘地址:https://pan.baidu.com/s/1kVh5zRT
ubuntu镜像百度盘地址:https://pan.baidu.com/s/1nvT46HN

关于docker的安装以及基本用法参考上文

首先清理出一个干净的环境用来做演示
这里写图片描述

执行以上步骤只是为了重头演示一个完整的过程,细心的同学会发现删除第二个镜像的时候报错了

Failed to remove image (newubuntu): Error response from daemon: No such image: newubuntu:latest

原因:在保存镜像的时候加了TAG(rm),而docker删除时默认会将TAG设为latest,如果想要删除的话需要指定TAG为rm

[root@foundation5 ~]# docker rmi newubuntu:rm

一、搭建2048游戏

1.倒入镜像

[root@foundation5 docker-images]# docker load -i game2048.tar

2. 运行应用:

[root@foundation5 docker-images]# docker run -d -p 8090:80 --name 2048 game2048

3. 访问应用(本人真机ip172.25.254.5)
这里写图片描述

默认应用会运行在80端口上的,但是我本机已经运行了nginx,所以做了一个端口转换 8090:80

对于默认镜像信息我们可以通过以下命令进行查看

[root@foundation5 docker-images]# docker inspect game2048

[    {        "Id": "sha256:19299002fdbedc133c625488318ba5106b8a76ca6e34a6a8fec681fb54f5e4c7",        "RepoTags": [            "game2048:latest"        ],        "RepoDigests": [],        "Parent": "",        "Comment": "",        "Created": "2016-12-26T03:03:47.054530538Z",        "Container": "64ed97f50cfef508b96bf58a46488e64824786535bfe6917a4ed6e09e366302e",        "ContainerConfig": {            "Hostname": "1d811a9194c4",            "Domainname": "",            "User": "",            "AttachStdin": false,            "AttachStdout": false,            "AttachStderr": false,            "ExposedPorts": {                "443/tcp": {},                "80/tcp": {}            },            "Tty": false,            "OpenStdin": false,            "StdinOnce": false,            "Env": [                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",                "NGINX_VERSION=1.11.7"            ],            "Cmd": [                "/bin/sh",                "-c",                "#(nop) ",                "CMD [\"/bin/sh\" \"-c\" \"sed -i \\\"s/ContainerID: /ContainerID: \\\"$(hostname)\\\"/g\\\" /usr/share/nginx/html/index.html \u0026\u0026 nginx -g \\\"daemon off;\\\"\"]"            ],            "ArgsEscaped": true,            "Image": "sha256:b9f1f2dbfa4e19915a872fafb02dc5de7f6406df48608b18c1893840f662fa5c",            "Volumes": null,            "WorkingDir": "",            "Entrypoint": null,            "OnBuild": [],            "Labels": {}        },        "DockerVersion": "1.13",        "Author": "Golfen Guo \u003cgolfen.guo@daocloud.io\u003e",        "Config": {            "Hostname": "1d811a9194c4",            "Domainname": "",            "User": "",            "AttachStdin": false,            "AttachStdout": false,            "AttachStderr": false,            "ExposedPorts": {                "443/tcp": {},                "80/tcp": {}            },            "Tty": false,            "OpenStdin": false,            "StdinOnce": false,            "Env": [                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",                "NGINX_VERSION=1.11.7"            ],            "Cmd": [                "/bin/sh",                "-c",                "sed -i \"s/ContainerID: /ContainerID: \"$(hostname)\"/g\" /usr/share/nginx/html/index.html \u0026\u0026 nginx -g \"daemon off;\""            ],            "ArgsEscaped": true,            "Image": "sha256:b9f1f2dbfa4e19915a872fafb02dc5de7f6406df48608b18c1893840f662fa5c",            "Volumes": null,            "WorkingDir": "",            "Entrypoint": null,            "OnBuild": [],            "Labels": {}        },        "Architecture": "amd64",        "Os": "linux",        "Size": 55496757,        "VirtualSize": 55496757,        "GraphDriver": {            "Name": "devicemapper",            "Data": {                "DeviceId": "69",                "DeviceName": "docker-8:3-136573604-be9240103088b33d1e849f9cf3157592fcdda1d22e800cbef1e1392086156094",                "DeviceSize": "10737418240"            }        }    }]

到这里演示就完了,是不是太简单了,这就是Docker,把环境清理以下搭建Nginx吧

这里写图片描述

二、搭建nginx服务器

1.倒入镜像

[root@foundation5 docker-images]# docker load -i nginx.tar

这里写图片描述

2. 先了解下nginx容器的配置

这里写图片描述

由以上操作可知,nginx的配置文件在/etc/nginx/nginx.conf

查看一下配置文件
这里写图片描述

可知还有一个被包含进来的nginx配置目录

include /etc/nginx/conf.d/*.conf;

查看这个目录中的默认配置文件可知网站根目录为

location / {        root   /usr/share/nginx/html;        index  index.html index.htm;    }

3. 开启服务器

[root@foundation5 docker-images]# docker run -d --name nginxServer nginxe44404d67211c37a177c60f34917a17829c1f37dafae9121eb261c35a268115f[root@foundation5 docker-images]# docker ps -aCONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS                       PORTS               NAMESe44404d67211        nginx               "nginx -g 'daemon off"   About a minute ago   Up About a minute            80/tcp, 443/tcp     nginxServer

使用容器的ip进行访问测试;
这里写图片描述

4. 默认发布目录映射以及网络模式修改,直接通过真机进行访问,便利网站开发:

[root@foundation5 docker-images]# docker run -d --name nginxDC --net host -v /tmp/website/:/usr/share/nginx/html nginx3e2e624ced8f9e7bdf3876aa8e85a4413b1813c0b7223e4a0ca1c46606ff2617[root@foundation5 docker-images]# cat /tmp/website/index.html <h1>goooooooooooooood</h1>

这里写图片描述

其实步骤真的很简单,容器+镜像,简单完美!

原创粉丝点击