Docker学习笔记[nginx]

时间:2022-07-24
本文章向大家介绍Docker学习笔记[nginx],主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Docker是一个开源的应用容器引擎。基于Go语言开发,应用容器好理解,就是类似tomcat是Servlet容器一样,那么Docker肯定具有广泛的兼容性。实际上Docker可以部署各种应用。包括mysql、nginx、tomcat等等。那么引擎又是什么意思?是要表达快和猛烈的能力吗?我们目前就这么理解吧。因为采用Go语言开发,显然是很快的。因为Go语言和Java等语言在实现上有点不一样。您可以搜索相关的资料好好学习一下。

既然是强大的容器,那么就什么都可以放进去并运行它,显然Docker中的应用是进程隔离的。在日常运维和部署时,一个应用使用的资源是有限的,而Docker很好的进行资源的整合。让应用在自己需要的资源条件下进行运行,从而使得我们的应用都被安排的井井有条。

在安装nginx时候,首先要通过Docker获取nginx版本。在此之前,您需要到https://hub.Docker.com/_/nginx?tab=tags&page=2寻找您要安装的nginx版本。

然后按提示进行安装

docker pull nginx:1.18.0

安装成功之后

您可以通过Docker images来查看Docker中的镜像程序

之后就需要将我们的镜像跑起来,

docker run -it -d --name mynginx131 -p 80:80 -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/www:/home/nginx/www --privileged --net=host nginx:1.18.0

比如上边的指令想表达的意思就是将镜像程序nginx:1.18.0以mynginx131为运行名称。把操作系统的80端口映射到Docker的80端口,然后让该程序进行监听。该程序使用的/etc/nginx/nginx.conf 和/home/nginx/www 均采用-V指定的操作系统文件目录或文件。这里搜索一些run命令相关的参数说明。

-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-P: 随机端口映射,容器内部端口随机映射到主机的端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h "mars": 指定容器的hostname;
-e username="ritchie": 设置环境变量;
--env-file=[]: 从指定文件读入环境变量;
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
--link=[]: 添加链接到另一个容器;
--expose=[]: 开放一个端口或一组端口;
--volume , -v: 绑定一个卷

您可以执行docker stop mynignx131来停止正在运行的Docker应用。并使用Docker ps -a来查看Docker应用的启动效果

这里的exited表示距离当前的退出时间差。

也同样也可以使用docker start mynginx131来重新启动或者docker restart mynginx131来启动我们的应用。

您也可以登录到Docker容器中。执行docker exec -it 58bb2a7f1f61 /bin/bash。这里的58bb2a7f1f61就是docker ps -a的第一列[container Id].在进入子应用的之后,您可以给您的应用安装一些插件或者修改。

如果您想退出Docker容器的话,您可以执行exit指令。

当然如果您的应用启动失败了。您也可以执行docker logs 58bb2a7f1f61来查看应用的启动的失败异常。