轻量级容器Docker - 创建nginx容器
之前已经为Docker配置好了ssh服务,并创建好了带有SSH服务器的镜像,这里在此基础上安装nginx服务器,使外部可以访问容器中的nginx服务
思路
(1)通过ssh登录容器,安装nginx服务器
(2)创建新的nginx镜像
(3)基于新镜像启动容器,测试nginx服务
操作
(1)安装nginx
启动容器,启动时打开ssh的22端口
docker run -d -p 22 dys/centos:ssh
执行 docker ps 命令,查看 22 对应主机的端口号,我这里是1035
ssh登录容器
ssh root@127.0.0.1 -p 1035
在容器中安装nginx(容器的基础镜像是centos,下面的安装方法是centos下的),安装方法与在普通操作系统中一样
yum install gcc-c++
yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel
yum wget
cd
wget http://nginx.org/download/nginx-1.8.0.tar.gz
tar -zxv -f nginx-1.8.0.tar.gz
cd nginx-1.8.0
./configure --prefix=/usr/local/nginx --with-http_stub_status_module
make && make install
启动nginx
/usr/local/nginx/sbin/nginx
本地测试
curl http://127.0.0.1
可以看到获取到了nginx的欢迎页面
退出ssh
(2)创建新的nginx镜像
关闭容器
执行 docker ps 命令,记下容器的ID(这里是 9708d2e3f613)
执行关闭容器的命令
docker stop 9708d2e3f613
执行创建新镜像的命令,指定新镜像的名字为:centos_nginx
docker commit 9708d2e3f613 centos_nginx
(3)启动容器
指定使用新镜像,并打开容器的 22 和 80 端口
docker run -d -p 22 -p 80 centos_nginx
查看一下容器执行状态
docker ps
找到名称为 centos_nginx 的这条信息,看 PORTS 项,值为:
0.0.0.0:1041->22/tcp, 0.0.0.0:1042->80/tcp
说明本机的 1042 端口对应着容器的 80 端口
刚才安装nginx时没有设置自动启动,所以现在还需要ssh登录到容器,执行一下启动nginx的命令
启动后,就可以访问nginx了
http://主机IP或域名:1042
可以看到 nginx 的欢迎页面了
- 利用Androidstudio开发Java工程图文详解
- 小程序学习笔记分享(含1-tabBar、轮播图和九宫格)
- Android中ViewStub控件分析及使用
- 如何实现微信小程序的滚动加载功能
- 分享微信小程序推送消息步骤
- 实例分享微信小程序项目搭建(下)
- 实例分享微信小程序项目搭建(上)
- Android6.0源码分析之蓝牙显示接收到的文件
- Android中应用调用系统权限
- Android5.0以后隐式启动ServiceBug
- Android6.0源码分析之录音功能(一)
- Android6.0源码开发之修改默认音量default及max和min
- Android源码开发之添加/删除系统应用
- 按键事件处理
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 详解Linux iptables 命令
- 详解fedora 开启 apache 并 开启目录浏览模式
- CentOS新建用户并使能密钥登录的方法
- Linux系统扩容根目录磁盘空间的操作方法
- Linux如何查看进程栈信息示例
- linux查看硬盘大小与挂载硬盘的实现
- centos6.5 安装hadoop1.2.1的教程详解【亲测版】
- Linux中没有rc.local文件的完美解决方法
- 详解linux lcd驱动编写
- Linux下安装telnet的方法
- Linux 安装二进制MySQL 及 破解MySQL密码的方法
- Linux创建进程达到65535的方法
- SSH 上传文件及文件夹到linux服务器的方法
- apache tika检测文件是否损坏的方法
- Linux下二进制编译安装MySql centos7的教程