docker 安装nginx

什么是docker

先摘抄一段话说一下什么是docker:

Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 开始,则进一步演进为使用 runC 和 containerd。Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。

docker的优点

从前端开发到项目的部署学习了很多服务端知识,对于docker的学习要从公司开发的一个电子合同平台开始,也是公司人员的欠缺使得开发者也参与项目的部署,部署方案大概就是用docker的统一部署,也方便之后的项目整体迁移。学习docker之后让我感觉docker作为服务端部署工具意义重大,结合网上查阅的资料总结docker的优点如下:

一致的运行环境

开发过程中一个常见的问题是环境一致性问题。由于开发环境、测试环境、生产环境不一致,导致有些 bug 并未在开发过程中被发现。而 Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现 「这段代码在我机器上没问题啊」 这类问题。

更轻松的迁移

由于 Docker 确保了执行环境的一致性,使得应用的迁移更加容易。Docker 可以在很多平台上运行,无论是物理机、虚拟机、公有云、私有云,甚至是笔记本,其运行结果是一致的。因此用户可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。

更方便的运维管理

用docker统一进行服务管理,很快速的查看、启动、关闭程序,如服务器上装有node端口3000 php端口8088 nginx端口80 apache端口8090 还有一些数据库的 mysql3306 用docker就很方便的统一命令对他们进行管理

docker 安装nginx

进入正题,说一下docker安装nginx,由于nginx作为静态资源服务器优点突出,因此作为常常用它作为web服务器。docker安装nginx的hello wold很是简单列一下步骤

  1. 查看可用版本:docker search nginx 
  2. 取最新版的 Nginx 镜像:docker pull nginx:latest
  3. 查看本地镜像:docker images
  4. 运行容器:docker run --name nginx-test -p 8080:80 -d nginx
  5. 安装成功访问 curl localhost:8080

helloworld已经安装完成,但是咱们安装的nginx,大多都是需要我们进行配置。修改nginx.conf文件,

方法一:就是进入容器内部修改对应的文件  docker attach 1e560fca3906  

方法二:就是用docker run 的 -v 命令进行映射这样修改服务器文件 对应文件就一起修改了

详细说一下方法二 以nginx安装为例

  1. 创建一个容器名为nginx-test (该服务只为复制conf文件)
    docker run --name nginx-test -p 8080:80 -d nginx

     

  2.  创建服务nginx目录和映射文件
     mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf ~/nginx/conf.d
  3. 拷贝文件
    docker cp 7e9ff3dc701d:/etc/nginx/conf.d/default.conf ~/nginx/conf.d
    docker cp 7e9ff3dc701d:/etc/nginx/nginx.conf ~/nginx/conf
  4.  运行并添加映射
    docker run -d -p 80:80 --name runoob-nginx-web -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/nginx/logs:/var/log/nginx  -v ~/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf nginx
    

     

这样咱们的nginx/www目录就是容器内的 html路径,也是默认的根路径 修改配置也只修改nginx/conf.d/default.conf文件。

docker 其他常用命令

查看镜像:docker images

查看所有容器 docker ps -a 

查看运行中容器 docker ps

容器启动 docker start 容器Id

停止容器 docker stop 容器Id

删除容器  docker rm -f 容器Id

容器重命名 docker rename 原容器名 修改容器名

进入容器 docker attach 容器Id(不推荐)   docker exec -it 容器Id /bin/bash(推荐)

离开容器  docker exec(不推荐)  exit(推荐)

打包镜像 docker save 镜像id> /root/nginx.tar  

加载镜像 docker load < /root/nginx.tar 

打包容器 docker export 容器id > ubuntu.tar

导入容器 cat docker/ubuntu.tar | docker import - test/ubuntu:v1

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值