Docker 运行 Nginx 静态网站

avatar 2018年05月08日16:50:10 6 3448 views
博主分享免费Java教学视频,B站账号:Java刘哥 ,长期提供技术问题解决、项目定制:本站商品点此
本文是在 Ubuntu Server 16.04 下进行测试,详细介绍 Docker 如果运行一个 Nginx 静态网站

一、准备工作

1、SSH 连接服务器
ssh -q -l 用户名 -p 22 ip地址
2、切换到 root 用户
su
如果新服务器没有 root 密码,可以先设置密码
sudo passwd root
3、确保 apt-get 是最新版
sudo apt-get update
4、安装 docker
apt-get install -y docker.io 或者
curl -s https://get.docker.com|sh
5、查看 docker 是否安装成功
docker version
发现没有启动
6、启动 docker
service docker start
7、再次查看
docker version
启动成功,可以看到客户端和服务器端的版本信息
想看简约的,直接 docker -v
至此,准备工作已经做好。

二、运行 Nginx 镜像

1、拉取镜像到本地
docker pull nginx
这是从 docker 官方仓库下载,如果很慢,可以试试国内镜像仓库
docker pull registry.docker-cn.com/library/nginx
2、查看镜像列表
docker images
目前有一个镜像,即 registry.docker-cn.com/library/nginx
3、查看目前正在运行的容器
docker ps

目前没有正在运行的容器
4、启动镜像
① 前台启动
docker run registry.docker-cn.com/library/nginx
这是前台启动,无法输入命令,需要退出,可以按 ctrl + c

我们暂时不退出,打开另一个命令窗口,ssh 登录进去,查看当前正在运行的容器。可以 nginx 正在运行中

② 后台启动(推荐)
docker run -d registry.docker-cn.com/library/nginx
后台启动只需要加一个 -d 的参数

5、进入容器中

docker exec -it admiring_kapitsa bash

docker exec 表示在容器中执行命令

-i :即使没有附加也保持STDIN 打开

-t :分配一个伪终端

admiring_kapitsa 是容器名称,可以通过 docker ps 查看

bash 终端命令

然后,我们发现仿佛我们进了一台新的电脑

进去看看文件目录,找一下我们 nginx 在哪里

查看当前运行的服务

ps -ef


可以看到 nginx 正在运行
如果 ps -ef 命令没有找到
可以试试
apt-get update
apt-get install procps
退出容器
exit

三、Docker 网络

上一节我们学习了安装 Docker 和 在 Docker 中安装 Nginx,没有介绍如果在浏览器中访问 Nginx 的网站。
1、重新启动 Nginx 镜像
我们先关闭之前的镜像中的容器
docker stop admiring_kapitsa
admiring_kapitsa 是容器名称
启动 Nginx 镜像

docker run -d -p 8080:80 registry.docker-cn.com/library/nginx

-d --标示后台进程运行–p端口映射宿主8080→容器80端口

registry.docker-cn.com/library/nginx 是镜像名称

2、查看 8080 端口的状态

netstat -na|grep 8080

8080 端口正在运行中

3、在浏览器访问 http://localhost:8080/

可以访问到(如果是在云服务器上测试,localhost换成ip地址)


4、创建一个 hello.html,在里面写点东西,然后拷贝到容器中的/usr/share/html 目录中。最后提交到仓库,保证修改永久有效

5、提交
docker commit -m 'hello' 116c639e7fa9
  • 微信
  • 交流学习,资料分享
  • weinxin
  • 个人淘宝
  • 店铺名:言曌博客咨询部

  • (部分商品未及时上架淘宝)
avatar

发表评论

avatar 登录者:匿名
匿名评论,评论回复后会有邮件通知

  

已通过评论:0   待审核评论数:0