Docker基础之运行Nginx

故事扮演 提交于 2019-11-28 17:23:10

一、背景

这次折腾docker,第一是因为它很火;第二是因为它的虚拟化可以节省服务器资源;第三就是听说docker在部署方面会很省事省力,所以学习一下docker。

二、目的

记录一下用docker运行Nginx容器的一些命令和常见问题

三、条件

在windows环境/Ubuntu环境都可以,只要装了docker相关的东西就行。

四、工具

1.在Win10环境下安装Docker for Windows/Ubuntu环境随便搞/Win10以下的版本要安装Toolbox

2.我的是Win10,所以要装一个图形操作软件Kitematic,当然它也有命令终端,我通常都是用它的命令终端

五、实例操作

1.docker基本命令,docker命令一般有以下几条:

从docker云端下载镜像 -- docker pull coname(coname是镜像名字,比如nginx,mysql,redis)

运行镜像 -- docker run coname(默认运行本地镜像,如果本地没有则从云端下载)

查看当前镜像 -- docker images(查看本地镜像)

查看当前运行镜像 -- docker ps

进入容器内部 -- docker exec -it coname(可以深入容器内部进行设置)

查看端口开放情况 -- docker port coname(coname代表镜像的名字)

退出容器 --  在容器内部运行exit就行(退回到docker环境下)

停止镜像 -- docker stop cnum(cnum代表着镜像的ID,可以通过docker ps查看)

端口映射 -- docker run  -p|-P coname (-p是可以自己配置指定的端口,-P是让它自己随机生成端口映射)

2.下载Ngxin

执行命令:docker pull nginx 即可下载,等待下载完成就行(国内有镜像仓库,比如网易163,但是目前好像改版不给用乐,下载速度会很快;阿里云有国内镜像加速器;还可以科学上网以提高下载速度)

3.启动docker

下载完成nginx后,可以用命令:docker run -d -p 8080:80 nginx 启动nginx服务(-d 是指后台运行,-p是指定端口运行,这里指定外部访问通过8080,映射到nginx的80端口)

4.进入docker 容器Nginx的内部

要进入容器内部一探究竟,可以执行命令:docker exec -it 156 bash (exec是关键命令,-it是参数,可以通过--help查看参数具体含义,156xxx指的是容器的ID,可以通过docker ps查看,最后的bash是进入的意思)。

进入容器内部其实就相当于进入了一个linux环境,可以使用ls pwd等命令操作。

5.docker的网络

使用exit命令可以从容器内部退回到docker环境下。

docker的网络我是可以用桥接模式,也可以用HOST模式(桥接模式会自己虚拟出自己的虚拟网卡,可以由我们自己配置;HOST模式使用宿主机的网络,包括端口,宿主机是啥它就是啥)

6.运行nginx

通过刚才的命令:[docker run -d -p 8080:80 nginx ]已经将nginx启动了,可以打开浏览器访问Localhost:8080就能看到nginx的欢迎页(之前我这里除了很多问题,也不知道是镜像问题还是什么,总是不能正常访问nginx欢迎页,后来莫名其妙就正常了):

Welcome to nginx!

如果是改用大写P的方式运行,则需要用命令停止当前的nginx:docker stop cunm(cunm代表镜像的ID)

然后执行命令:docker run -P nginx (我在win10环境下执行后会卡住1分钟,我只能关掉命令终端重开),去到浏览器再次访问localhost:8080已经提示访问出错,接着用docker ps命令看一下现在分配的端口号是32768,去浏览器访问localhsot:32768发现Nginx的欢迎页面又回来了!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!