Docker渐入佳境

前两篇算是对Docker做了大致的介绍,然后现在开始,就是Docker的实际运用了,先从一个简单的静态网站的部署开始。

容器端口映射

以网站服务为例,一般需要80端口,那么如何使容器的端口能被外界访问得到呢?这就要用到容器的端口映射。

run [-P] [-p]

-p --publish = []

  • containerPort - docker run -p 80 -i -t /bin/bash - 宿主机端口随机映射
  • hostPort:containerPort - docker run -p 8080:80 -i -t /bin/bash - 宿主机端口:容器端口 指定映射
  • IP:containerPort - docker run -p 0.0.0.0:80 -i -t /bin/bash - 指定IP的端口映射
  • ip:hostPort:containerPort docker run -p 0.0.0.0:8080:80 -i -t /bin/bash - 指定IP和端口的映射

Nginx部署静态网站

部署Nginx需要以下步骤:

创建映射80端口的交互式容器

$ docker run -p 80 --name Nginx_Web -i -t ubuntu /bin/bash

安装Nginx

$ apt-get install -y nginx

若提示未发现软件,使用apt-get update更新源

安装文本编辑器vim

$ apt-get install -y vim

创建静态页面

先创建网站目录,然后使用vim编辑网页

$ mkdir -p /var/www/html
$ cd /var/www/html
$ vim index.html

输入一个基本的html内容,:wq指令保存并退出!

修改Nginx配置文件

$ cd /etc/nginx/
$ ls
$ vim /sites-enabled/default

检查root的默认路径,确认其为刚刚创建的/var/www/html

同样:wq指令保存并退出!

关于Nginx的配置可以参考之前的博客

运行Nginx

$ nginx
$ ps -ef

运行nginx,可以使用ps指令来查看

Ctrl+P + Ctrl+Q 切出容器,使用docker ps查看容器状态

容器

验证网站访问

若无公网IP,则直接使用curl命令才访问

$ curl http://127.0.0.1:32769

注意:这里的端口号使用刚才ps中显示的端口号,也可以使用docker port Nginx_Web来查看端口

curl

如果有外网或者域名解析,则可以直接访问验证。

web

或者使用容器的ip地址访问(宿主机内部)

使用docker inspect Nginx_Web查看IP地址,并直接访问,此处略过。

退出容器后操作

退出容器后,nginx服务停止,使用start指令启动会,nginx并不会自动启动。

此时可以使用docker exec Nginx_Web nginx来附加指令使nginx启动,并正常运行。

注意:若不指定,退出并重新启动后的容器的端口和IP都会改变.

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏运维技术迷

Veeam Backup & Replication(二):添加虚拟化主机和配置备份存储

一、添加虚拟化主机 veeam可以添加单个ESXi主机,也可以添加vCenter服务器,因为做实验,就添加一台ESXI主机为例吧。 1.1 选择 Virtual...

529120
来自专栏IT笔记

内网文库搭建备忘录

13430
来自专栏遊俠扎彪

Windows下使用pyinstaller制作exe(py2exe)

配置python环境变量,一般从http://www.python.org/下载完python的编译解释器,只要正常安装成功,会自动配好。

238100
来自专栏纯洁的微笑

Docker(四):Docker 三剑客之 Docker Compose

前两篇文章我们介绍了 Dockerfile 的使用Docker(二):Dockerfile 使用介绍,我们知道使用一个 Dockerfile 模板文件可以定义一...

44330
来自专栏hbbliyong

CentOS 7上安装Docker 1.8

安装在二进制兼容的EL7版本如 Scientific Linux也是可能成功的,但是Docker 没有测试过并且不官方支持。 此文带你通过使用Docker...

13710
来自专栏后端云

虚拟机无法启动

由于kvm所在的机器启用了SELINUX,后来将之关闭,关闭之后,发现kvm的虚拟机无法启动

36040
来自专栏A周立SpringCloud

Docker系列教程02-Docker安装(CentOS7/Ubuntu/macOS/Windows)

第二章 Docker安装 2.1 CentOS 2.1.1 系统要求 CentOS 7或更高版本 centos-extras 仓库必须处于启用状态,该仓库默认启...

434120
来自专栏世界第一语言是java

docker部署redis,清空redis缓存

1.3K10
来自专栏编程

在容器中部署mysql与数据持久化

通过上一节的学习,我们知道了如何部署一个不带数据库的静态nginx页面;但一般的web应用中,还需要部署mysql数据库,本节我们将学习如何使用容器部署mysq...

32690
来自专栏Samego开发资源

初识docker compose工具

19530

扫码关注云+社区

领取腾讯云代金券