憨豆说安全 · 2020年08月11日

云芯一号教程 - Docker配置Nginx WEB服务教程

  Docker是一个开源的基于LXC的高级容器引擎,我们可以把应用以及依赖包打包到一个镜像中,发布到支持Docker的 Linux或Windows 机器上,实现虚拟化。
  Nginx是一个常用的高性能WEB服务器,利用Docker可以非常方便的配置Nginx WEB服务。

1.系统配置
1.1 安装Docker

  sudo apt-get install docker-ce docker-ce-cli containerd.io

1.2 下载nginx镜像
  我们先搜索nginx镜像。

  sudo docker search nginx

  nginx镜像是存在的。

  jishu@Jishu:~$ sudo docker search nginx
  [sudo] password for jishu: 
  NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
  nginx                              Official build of Nginx.                        13369               [OK]                
  jwilder/nginx-proxy                Automated Nginx reverse proxy for docker con…   1827                                    [OK]
  richarvey/nginx-php-fpm            Container running Nginx + PHP-FPM capable of…   778                                     [OK]
  ......

  下载nginx镜像到本地。

  sudo docker pull nginx

  docker pull结束后,我们用docker images命令看看下载是否成功。

  jishu@Jishu:~$ sudo docker images
  REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
  nginx               latest              274c632b9f13        2 weeks ago         125MB

  nginx镜像已经存在,下载成功。

2.配置安装nginx服务
2.1 配置默认nginx WEB服务
  用docker run命令来启动默认配置的nginx容器实例。

  sudo docker run --name nginx-test -p 8051:80 -d nginx

  -name参数:容器命名为nginx-test
  -p参数: 端口映射,将本地8051端口映射到容器内部的80端口
  -d参数:设置容器在在后台一直运行
  命令执行完后,会打印容器ID,用docker ps命令可以查看到容器已经在运行。

  jishu@Jishu:~$ sudo docker ps -a
  CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
  292df1d11d48        nginx               "/docker-entrypoint.…"   37 seconds ago      Up 35 seconds       0.0.0.0:8051->80/tcp   nginx-test

  用浏览器访问web服务http://ip:8051,看到Nginx的web服务已经启动。

2.2 配置自定义WEB服务
  docker run命令可以用-v 参数把容器实例里的服务目录映射为本地目录。
  先用docker exec命令进入容器实例来看一下nginx WEB服务的目录。

  sudo docker exec -it 292df1d11d48 /bin/bash

  进入容器实例,找到nginx WEB服务的HTML目录为:/usr/share/nginx/html
  nginx服务的配置文件目录为:/etc/nginx/nginx.conf
  nginx服务的log目录为:/var/log/nginx

  我们以HTML目录为例来验证目录映射。
  在/home/jishu目录下创建自定义目录/docker/nginx/testpage,创建自定义网页index.html,我们在index.html中打印 “Just a test!!!”,进行功能验证。

  用docker stop命令停止存在的nginx容器实例。
  重新创建docker镜像实例,并映射HTML网页的目录。

  sudo docker run --name nginx-test-1 -v /home/jishu/docker/nginx/testpage/:/usr/share/nginx/html -p 8052:80 -d nginx

  新建的nginx-test-1实例已经创建成功并启动。

  jishu@Jishu:~$ sudo docker ps -a
  CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
  59be895be461        nginx               "/docker-entrypoint.…"   9 seconds ago       Up 7 seconds        0.0.0.0:8052->80/tcp   nginx-test-1
  292df1d11d48        nginx               "/docker-entrypoint.…"   7 minutes ago       Up 7 minutes        0.0.0.0:8051->80/tcp   nginx-test

  用浏览器访问web服务http://ip:8052,看到浏览器页面显示“Just a test!!!”,nginx WEB服务的HTML目录映射成功。
  通过"-v"参数,还可以映射其它nginx目录。

推荐阅读
关注数
4278
内容数
71
低成本Arm微服务器开发平台“云芯1号”教程及应用,欢迎关注
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息