Docker学习笔记 - Docker部署nginx网站

一、制作 nginx 镜像
1、下载配置文件
- mkdir /opt/nginx_docker && cd /opt/nginx_docker
- mkdir nginx && cd nginx
- wget https://raw.githubusercontent.com/jamtur01/dockerbook-code/master/code/5/sample/nginx/global.conf
- wget https://raw.githubusercontent.com/jamtur01/dockerbook-code/master/code/5/sample/nginx/nginx.conf
- cd ..
2、编写Dockerfile&&制作镜像
cd /opt/nginx_docker
vi Dockerfile
- docker build -t liangshengqi/nginx .
- docker history xxxxxxx
FROM ubuntu: 14.04
MAINTAINER: LIANGSHENGQI "liangshengqi@inspur.com"
ENV REFRESHED_AT 2017-11-14
RUN apt-get update
RUN apt-get -y -q install nginx
RUN mkdir -p /var/www/html
ADD nginx/global.conf /etc/nginx/conf.d/
ADD nginx/nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
3、运行nginx镜像/创建容器
cd nginx_docker
mkdir website && cd website
wget https://raw.githubusercontent.com/jamtur01/dockerbook-code/master/code/5/sample/website/index.html
docker run -d -p 80 --name myweb -v /opt/nginx_docker/website:/var/www/html/website lexiaofei/nginx nginx
查看日志 docker logs -f myweb
二、在容器内安装运行 nginx
1、启动容器
设置端口映射,允许访问容器的80端口
- -P 为所有端口映射
- -p 指定映射端口
- docker run -p 80 -i -t ubuntu /bin/bash
- docker run -p 8080:80 -i -t ubuntu /bin/bash
- docker run -p 0.0.0.0:80 -i -t ubuntu /bin/bash
- docker run -p 0.0.0.0:8080:80 -i -t ubuntu /bin/bash
#创建映射80端口的交互式容器
- docker run -p 80 --name web ubuntu /bin/bash
2、安装nginx
#安装nginx, 安装vim,创建静态页面
容器内#apt-get install -y nginx
容器内#apt-get install -y vim
容器内#mkdir -p /var/www/html
容器内#cd /var/www/html
容器内#vi index.html
<html>
<head><title>Hello</title></head>
<body>
<h1>Hahaha!</h1>
</body>
</html>
#修改nginx配置文件
whereis nginx
ls /etc/nginx
vim /etc/nginx/sites-enabled/default
root /var/www/html/index.html
3、#运行nginx
启动nginx(此时在容器内,所以在容器内运行)::nginx
查看正在运行的进程(此时在容器内,所以列出的是容器内的正在运行的进程)::ps -ef
退出容器::ctrl+p/ctrl+q
列出正在运行的容器:docker ps -a
列出指定的容器的端口映射::docker port web
4、#验证网站访问
curl http://127.0.0.1:49167
docker inspect web
curl http://172.17.0.32/
docker stop web
docker start -i web
ctrl+p/q
在容器内启动进程::docker exec web nginx
查看容器内运行的进程::docker top web
curl http://172.17.0.32 # 这次不行了,重新启动后ip变了!
Docker学习笔记 - Docker部署nginx网站的更多相关文章
- Docker学习笔记 — Docker私有仓库搭建
Docker学习笔记 — Docker私有仓库搭建 目录(?)[-] 环境准备 搭建私有仓库 测试 管理仓库中的镜像 查询 删除 Registry V2 和Mavan的管理一样,Dockers ...
- Docker学习笔记之-部署.Net Core 3.1项目到Docker容器,并使用Nginx反向代理(CentOS7)(一)
上一节演示如何安装Docker,链接:Docker学习笔记之-在CentOS中安装Docker 本节演示 将.net core 3.1 部署到docker容器当中,并使用 Nginx反向代理,部署平台 ...
- Docker学习笔记 - Docker容器内部署redis
Docker学习笔记(2-4)Docker应用实验-redist server 和client的安装使用 一.获取redis容器(含客户端和服务端) 二.创建服务端容器 1.在终端A中运行redis- ...
- Docker学习笔记 - Docker容器之间的连接
学习目标: 容器之间可以相互连接访问:: --link redis:redisAlias 准备工作 FROM ubuntu:14.04 RUN apt-get install -y ping RUN ...
- Docker学习笔记 — Docker私有仓库搭建【转载】
标签: Docker 2015-03-10 21:08 24190人阅读 评论(0) 收藏 举报 分类: Docker(26) 目录(?)[+] 和Mavan的管理一样,Dockers不仅 ...
- Docker学习笔记 - Docker的守护进程
学习目标: 查看Docker守护进程的运行状态 启动.停止.重启Docker守护进程 Docker守护进程的启动选项 修改和查看Docker守护进程的启动选项 1.# 查看docker运行状态 方 ...
- Docker学习笔记 - Docker客户端和服务端
学习内容: Docker客户端和服务端的通讯方式:client和自定义程序 Docker客户端和服务端的连接方式:socket 演示Docker客户端和服务端之间用remote-api通讯:nc ...
- Docker 学习笔记 ---Docker组件
Docker组件 1. 客户端:dockerclient 2. 服务端:dockerserver 3. Docker镜像 4. Registry 5. Docker 容器 Docker客户端 ...
- Docker学习笔记 - Docker的镜像
一个容器实际上是运行在宿主机上的一个进程. 只不过在启动这个进程之前进行了一些特殊处理,让这个容器进入了一个全新的虚拟环境,与宿主机的环境分开, 所以这个进程及其子进程认为自己运行在一个独立的世界里面 ...
随机推荐
- js备战春招の四のdevtool中各种错误、调试的使用技巧
try 语句允许我们定义在执行时进行错误测试的代码块. catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块. JavaScript 语句 try 和 catch 是成对出现的. ...
- Memcached修改默认端口
windows下修改memcached服务的端口号(默认端口:11211)如果不是作为服务启动memcached的话,memcached -p 端口号就可以了. 通过修改注册表可以简单实现 运行:re ...
- 13.C++-静态成员变量、静态成员函数
首先回顾下成员变量 能通过对象名能够访问public成员变量 每个对象的成员变量都是专属的 成员变量不能在对象之间共享 再来讲讲类的静态成员变量 介绍 静态成员变量属于整个类所有 静态成员变量的生命期 ...
- 关于slmgr命令
需要管理员的权限运行.这个命令可以用来卸载系统的序列号.使系统处于未激活状态.
- iOS 组件化的几篇文章
随着工程的成长,开发人员的增多,合理的模块划分及低耦合的重要性显得愈发重要.最近在思考这方面的问题,也读了不少通过组件化解耦的文章,这里记录一下. 前 5 篇文章有些关联,建议阅读顺序,1.3.2.4 ...
- 求第k小的元素
用快排解决: 用快排,一趟排序后,根据基准值来缩小问题规模.基准值的下角标i 加1 表示了基准值在数组中第几小.如果k<i+1,那就在左半边找:如果k>i+1那就在右半边找.当基准值的下角 ...
- push_back和emplace_back的区别
emplace_back能就地通过参数构造对象,不需要拷贝或者移动内存,相比push_back能更好地避免内存的拷贝与移动,使容器插入元素的性能得到进一步提升.在大多数情况下应该优先使用emplace ...
- java基础系列--SecurityManager入门(转)
转载作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/yiwangzhibujian/p/6207212.html 一.文章的目的 这是一篇对Java安全管理器入门的文 ...
- oracle exp(expdp)数据迁移(生产环境,进行数据对比校验)
前言:客户需要迁移XX 库 ZJJJ用户(迁移到其他数据库),由于业务复杂,客户都弄不清楚里面有哪些业务系统,为保持数据一致性,需要停止业务软件,中间件,杀掉oracle进程. 一.迁移数据倒出部分= ...
- windows+CMake+mingw 搭建c c++开发环境
layout: post title: "windows+CMake+mingw 搭建c c++开发环境" date: 2018-03-30 22:23:06 tags: wind ...