linux 安装docker 并使用docker 安装nginx

2 篇文章 0 订阅
1 篇文章 0 订阅

    啊 , 感叹下,生活不会亏待努力的人(虽然我不是  嘻嘻),但是一直过着 聪明、健康、有爱的生活。。。。。。。。。。。。。。。

   之前也在linux下安装过docker,并且也一直使用,但是一直没有记录下安装的过程,为了多年以后能再次发现自己的足迹,就抽个时间记录下这些过程。

什么是 Docker

Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护。Docker 项目后来还加入了 Linux 基金会,并成立推动 开放容器联盟(OCI)

Docker 自开源后受到广泛的关注和讨论,至今其 GitHub 项目已经超过 4 万 6 千个星标和一万多个 fork。甚至由于 Docker 项目的火爆,在 2013 年底,dotCloud 公司决定改名为 Docker。Docker 最初是在 Ubuntu 12.04 上开发实现的;Red Hat 则从 RHEL 6.5 开始对 Docker 进行支持;Google 也在其 PaaS 产品中广泛应用 Docker。

Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroupnamespace,以及AUFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 开始,则进一步演进为使用 runC 和 containerd

Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。

下面的图片比较了 Docker 和传统虚拟化方式的不同之处。传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。

安装 Docker

Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。

Docker CE 分为 stabletest, 和 nightly 三个更新频道。每六个月发布一个 stable 版本 (18.09, 19.03, 19.09...)。

CentOS 安装 Docker CE

警告:切勿在没有配置 Docker YUM 源的情况下直接使用 yum 命令安装 Docker.

准备工作

Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 overlay2 存储层驱动)无法使用,并且部分功能可能不太稳定。

可以使用 uname -r 查看linux的内核

安装一些必要的系统工具:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

添加软件源信息:

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新 yum 缓存:

sudo yum makecache fast

安装 Docker-ce:

sudo yum -y install docker-ce
安装成功后,我们启用并启动服务:
sudo systemctl enable docker  #在服务器上设置设置开机启动
sudo systemctl start docker   #启动docker服务
查看是否启动成功:

docker info 或者 docker version都可以看出docker是否启动成功

 

-------------------------------------------至此docker的安装算是完成了------------------------------------------

docker安装nginx

 

1. docker hub上查询 nginx

   docker search nginx

2. 下载最新版的 nginx
   docker pull nginx

下载完成后,使用docker images 查看下载的nginx 镜像

 

 3、启动跑个静态网页,测试下 nginx 容器

# 启动一个名为nginx(名字自己根据需求起名字,一般见名知意即可) 的容器 docker run --name nginx -d -p 80:80 -v /usr/docker/nginx/html:/usr/share/nginx/html nginx

# 默认容器对这个目录有可读写权限,可以通过指定ro,将权限改为只读(readonly) # docker run --name my-nginx -d -p 80:80 -v /usr/docker/nginx/html:/usr/share/nginx/html:ro -d nginx

 4、部署nginx 项目并修改配置文件

 一般情况下docker启动时进行配置,只要把配置文件的目录挂载出来就可以,但是nginx却是先加载一个主配置文件nginx.conf,在nginx.conf里再加载conf.d目录下的子配置文件(一般最少一个default.conf文件)。

docker run --name nginx -d -p 80:80 -v /usr/share/nginx/html:/usr/share/nginx/html:ro -v /etc/nginx/conf.d:/etc/nginx/conf.d:ro -v /var/log/nginx:/var/log/nginx -v /etc/nginx/nginx.conf /etc/nginx/nginx.conf  nginx

# 1. 第一个“-v”,是项目位置,把项目放到挂载到的目录下即可

# 2. 第二个“-v”,是挂载的主配置文件"nginx.conf",注意"nginx.conf"文件内有一行 # "include /etc/nginx/conf.d/*.conf;" ,

# 这个include指向了子配置文件的路径,此处注意include后所跟的路径一定不能出错

# 3. 第三个“-v”,把docker内子配置文件的路径也挂载了出来,注意要与 “2.” 中include指向路径一致

# 4. nginx.conf是挂载了一个文件(docker是不推荐这样用的),conf.d挂载的是一个目录

-v 宿主主机的目录:容器的目录

准备挂载的 nginx.conf :

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

}

 准备挂载的 default.conf :

server {

   listen 80;

   server_name localhost;

#charset koi8-r;

#access_log /var/log/nginx/host.access.log main;

location / {

    root /usr/share/nginx/html;

    index index.html index.htm;

   }

location /api{

   proxy_pass http://ip:port/api;

      # access_log "logs/test.log"; } }

 

 

 

此时访问ip+端口即可

 

说明成功,如果出现403.则是找不到文件,可以参考https://blog.csdn.net/zhezhebie/article/details/73331335解决

 

------------------------------------nginx有很多功能,本人也在持续学习中--------------------------------------

下面使用自己的自定义配置,实现nginx的转发功能

 

 

 

 

 

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值