阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用Docker创建Web服务详解

470次阅读
没有评论

共计 4737 个字符,预计需要花费 12 分钟才能阅读完成。

1、目的

在已经掌握 docker 安装、docker 仓库的基本使用、docker 镜像和容器的基本操作和相互转化的基础上,可尝试通过 docker 搭建一个 web 服务器,便于分布式部署或快速移植 web 服务器。

通过本文的学习,可以了解学习 docker 容器与宿主机的文件和端口映射,进一步熟练使用 docker 容器。

2、修改容器,搭建简单的 web 服务

安装 nginx

# apt-get install nginx

修改 nginx 配置文件

# vi /etc/nginx/conf.d/web.conf

# server 的配置
server {
    # 监听端口
    listen 81;
    # 项目的初始化页面
    location / {
      root  /home/visual/nginx_web/;
      index index.html;
    }
}

修改开机启动项

# vi /etc/rc.local

####!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will “exit 0” on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

service ssh start
service nginx start

/bin/bash

exit 0

3、创建镜像,便于再次启动容器

通过 commit 操作创建 docker 镜像文件,上篇文章已经讲过,命令如下

linuxidc@linuxidc:~/docker$ docker ps -a
CONTAINER ID        IMAGE              COMMAND                  CREATED            STATUS                      PORTS              NAMES
568e5204fff3        Ubuntu              “/bin/sh -c ‘while…”  40 hours ago        Exited (137) 38 hours ago                      kind_khorana
00f561d97811        ubuntu              “/bin/echo hello w…”  40 hours ago        Exited (0) 40 hours ago                        nifty_mcnulty
93a1b9d39683        ubuntu              “bash”                  40 hours ago        Exited (0) 5 seconds ago                        zealous_noether
abdc084f9821        hello-world        “/hello”                41 hours ago        Exited (0) 18 hours ago                        sleepy_clarke
linuxidc@linuxidc:~/docker$ docker commit 93a1b9d39683 learn/nginx:v2
sha256:ab92edd21696770f1eb37e9229b6834094a8d3381e5b4e9edc620b7927004bb4
linuxidc@linuxidc:~/docker$ docker images
REPOSITORY                                      TAG                IMAGE ID            CREATED            SIZE
learn/nginx                                      v2                  ab92edd21696        5 seconds ago      370MB
learn/visual_init                                v1                  56a4eab7dc5b        37 hours ago        321MB
registry.cn-beijing.aliyuncs.com/zhangsp/ai      visual_init        56a4eab7dc5b        37 hours ago        321MB
ubuntu                                          latest              14f60031763d        5 days ago          120MB
hello-world                                      latest              1815c82652c0        5 weeks ago        1.84kB

4、启动新容器

使用新创建的镜像 learn/nginx:v2,启动新容器

# docker run -it –name nginx_test -h docker-nginx -p 8001:81 -p 8000:80 -v /home/linuxidc/docker/nginx_web/:/home/visual/nginx_web/ learn/nginx:v2 /bin/sh /etc/rc.local

启动容器的参数介绍

    -it,交互方式启动
    –name nginx_test,指定新容器的名称是 nginx_test
    -h docker-nginx,指定新容器的主机名是 docker-nginx
    -p 8001:81 -p 8000:80,指定宿主机与 docker 容器的端口映射,宿主机的 8001 对应 docker 容器的 81,宿主机的 8000 对应 docker 容器的 80
    -v /home/linuxidc/docker/nginx_web/:/home/visual/nginx_web/,指定宿主机与 docker 容器的文件映射,宿主机的 /home/linuxidc/docker/nginx_web/ 对应 docker 容器的 /home/visual/nginx_web/
    learn/nginx:v2,指定启动容器对应的镜像是 learn/nginx:v2,可以是镜像 ID
    /bin/sh /etc/rc.local,指定容器启动后,执行 shell 脚本是 /etc/rc.local

查看 docker 容器,容器 nginx_test 处于 up 状态,说明启动正常

linuxidc@linuxidc:~/docker/nginx_web$ docker ps -a
CONTAINER ID        IMAGE              COMMAND                  CREATED            STATUS                        PORTS                                        NAMES
cbbbe7a5d47a        learn/nginx:v2      “/bin/sh /etc/rc.l…”  25 minutes ago      Up 24 minutes                  0.0.0.0:8000->80/tcp, 0.0.0.0:8001->81/tcp  nginx_test
966bd52b72da        ubuntu              “/bin/sh -c ‘while…”  42 hours ago        Exited (137) 40 hours ago                                                  stupefied_knuth
00f561d97811        ubuntu              “/bin/echo hello w…”  42 hours ago        Exited (0) 42 hours ago                                                    nifty_mcnulty
93a1b9d39683        ubuntu              “bash”                  43 hours ago        Exited (0) About an hour ago                                                zealous_noether
abdc084f9821        hello-world        “/hello”                43 hours ago        Exited (0) 20 hours ago                                                    sleepy_clarke

5、测试 docker_nginx 是否正常

通过浏览器测试 8001 端口

使用 Docker 创建 Web 服务详解

通过浏览器测试 8000 端口

使用 Docker 创建 Web 服务详解

修改宿主机的文件,并测试 8001 端口

修改宿主机的 /home/linuxidc/docker/nginx_web/index.html 文件

linuxidc@linuxidc:~/docker/nginx_web$ vi index.html
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx! I am in docker!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx! I am in Docker!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href=”http://nginx.org/”>nginx.org</a>.<br/>
Commercial support is available at
<a href=”http://nginx.com/”>nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

通过浏览器测试 8001 端口,发现“Welcome to nginx! I am in docker!”,说明内容已经修改,使用 docker 做为 web 服务器的功能已经 OK

使用 Docker 创建 Web 服务详解

 

更多 Docker 相关教程见以下内容

Linux 下的 Docker 安装与使用  https://www.linuxidc.com/Linux/2018-06/152996.htm
CentOS 7 安装 Docker 应用容器引擎 https://www.linuxidc.com/Linux/2018-06/152856.htm
CentOS 7.3 环境安装 Docker 18.03 https://www.linuxidc.com/Linux/2018-05/152356.htm
使用 Docker 分分钟启动常用应用  https://www.linuxidc.com/Linux/2017-04/142649.htm
CentOS 7 使用 Docker 搭建 GitLab 服务器  https://www.linuxidc.com/Linux/2018-04/151725.htm
30 分钟带你了解 Docker  https://www.linuxidc.com/Linux/2018-08/153346.htm

Docker 容器常见操作详解  https://www.linuxidc.com/Linux/2018-08/153685.htm

Docker 发布应用程序指南 https://www.linuxidc.com/Linux/2018-08/153405.htm

Docker 的详细介绍:请点这里
Docker 的下载地址:请点这里

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4737字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7991148
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY 公司之前花钱购买的 ssl 证书快...
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...