赞
踩
Docker是一种虚拟化容器技术,可以将应用程序和其依赖的库、配置文件等打包成一个容器,进行分发部署。而Kubernetes (k8s) 是一个开源的容器编排平台,可以自动化部署、扩展和管理容器化应用程序。
Docker和Kubernetes (k8s) 的关系是:Docker提供了容器化技术,而Kubernetes (k8s) 则是在Docker的基础上构建的容器编排平台。也就是说,k8s是一个管理Docker容器的工具,它可以自动化地管理大规模容器化应用程序的部署、更新和扩展,提供高可用性、自动化管理、弹性伸缩等特性,可以帮助开发人员更加便捷地进行容器化应用程序的开发和运维。
使用Docker部署服务的便捷性主要体现在以下几个方面:
快速部署:Docker打包后的容器可以在任何支持Docker的机器上快速部署,无需额外的配置和调整,大大节省了部署时间。
跨平台:Docker容器可以在不同的操作系统和平台上运行,无需对应不同的操作系统和平台进行部署。
环境隔离:Docker容器可以将应用程序和其依赖的库、配置文件等打包在一起,并且与宿主机器隔离,这样可以避免应用程序之间的冲突和环境的混乱。
便于管理:Docker容器可以通过Docker Hub等集中式仓库管理,可以方便地分享和管理容器,同时也可以通过Docker命令行工具进行快速管理和操作。
弹性伸缩:Docker容器可以快速实现应用程序的扩容和缩容,提高了应用程序的可伸缩性和弹性。
Nginx做为常用的服务器之一部署在Docker是很常见的,下面会介绍Docker部署Nginx的流程。
Nginx和NGINX Plus都是广泛使用的开源Web服务器和反向代理软件。它们的主要区别在于功能和许可证。
Nginx是一个免费的开源软件,提供基本的Web服务器和反向代理功能,可以在Linux、Unix、Windows等操作系统上安装和运行。Nginx还可用于负载均衡、HTTP缓存、SSL终止和减少服务器压力等。
NGINX Plus是Nginx的商业版本,提供更多的高级功能和支持服务。它包括流控制、弹性负载均衡、Docker和Kubernetes集成、API网关、Web应用程序防火墙、实时指标、应用程序诊断和其他管理和监控工具。
NGINX Plus还提供支持计划、修补程序、故障排除、优化建议和性能保障等服务。
以下是在Windows中安装Nginx的步骤:
下载并安装Docker Desktop for Windows,官方网址:https://www.docker.com/products/docker-desktop
在Docker Desktop中打开终端窗口,并从Docker Hub上下载Nginx镜像:
docker pull nginx:latest
使用以下命令启动Nginx容器:
docker run --name my-nginx -p 80:80 -d nginx
这个命令将在后台启动一个名为my-nginx
的容器,并将容器的80端口映射到主机的80端口。您可以使用以下命令验证是否成功启动了容器:
docker ps
在Web浏览器中输入以下URL以验证Nginx是否正在运行:
http://localhost/
如果您可以看到Nginx的欢迎页面,那么您已经成功地在Windows中安装了Nginx。
要打开一个 Docker 容器的交互式 shell,您可以使用以下命令:
docker exec -it <容器名称或ID> /bin/bash
这将在一个运行的 Docker 容器中打开一个交互式 shell,您可以使用所需的操作系统命令和工具来与容器进行交互。请注意,您需要在 Docker 主机上拥有相应的权限才能运行此命令。
在Docker宿主机上维护Nginx的内容和配置,可以按照以下步骤进行:
找到Nginx容器的ID或名称,可以使用以下命令查看正在运行的Docker容器列表:
docker ps
进入Nginx容器,可以使用以下命令进入容器:
docker exec -it <nginx_container_id_or_name> bash
在容器中修改Nginx的配置,根据实际情况修改Nginx的配置文件,例如:
vi /etc/nginx/nginx.conf
修改完成后,重启Nginx服务,可以使用以下命令重启:
nginx -s reload
退出容器,返回到Docker宿主机维护Nginx的内容和配置。
exit
通过以上步骤,可以在Docker宿主机上维护Nginx的内容和配置。同时需要注意的是,如果是在Docker容器中使用Nginx,则可以通过在Dockerfile中定义COPY命令,将宿主机中的Nginx配置文件或内容复制到容器中,并在容器中启动Nginx服务。
记住docker容器默认是没vi编辑器的需要自己安装,所以不建议这种方式去运行。
在创建容器时,我们可以指示 Docker 将 本地主机上的本地目录挂载到容器的目录中,命令如下:
docker run --name my-nginx --mount type=bind source=/var/www,target=/usr/share/nginx/html,readonly --mount type=bind,source=/var/nginx/conf,target=/etc/nginx/conf,readonly -p 80:80 -d nginx
Docker 宿主机本地目录 /var/www 和 /var/nginx/conf 中的文件所做的任何更改都将在容器目录 /usr/share/nginx/html 和 /etc/nginx 中体现。readonly 选项意味着这些目录仅可以在 Docker 宿主机上更改,而不能在容器内更改。
html内容位于 content 目录,配置文件位于 conf 目录,这两个目录都是 Dockerfile 所在目录的子目录。NGINX 镜像包含了默认的 NGINX 配置文件 /etc/nginx/nginx.conf 和 /etc/nginx/conf.d/default.conf。我们想要使用来自宿主机的配置文件,因此我们添加了一个 RUN 命令来删除默认文件:
Dockerfile文件内容
FROM nginx
RUN rm /etc/nginx/nginx.conf /etc/nginx/conf.d/default.conf
COPY content /usr/share/nginx/html
COPY conf /etc/nginx
VOLUME /usr/share/nginx/html
VOLUME /etc/nginx
在Dockerfile文件目录运行
docker build -t mynginx_image2 .
docker run --name mynginx4 -p 80:80 -d mynginx_image2
docker run -i -t --volumes-from mynginx4 --name mynginx4_files debian /bin/bash
新的 mynginx4_files 辅助容器在前台运行,并提供持久化的标准输入(-i 选项)和 tty(-t 选项)。mynginx4 中定义的所有数据卷都作为本地目录挂载到辅助容器中。
如要启动和终止容器,请运行以下命令:
docker start mynginx4_files
docker stop mynginx4_files
如要退出 shell 但不终止容器的运行,请按 Ctrl+p,然后按 Ctrl+q。如要重新获得对正在运行的容器的 shell 访问权限,请运行以下命令:
docker attach mynginx4_files
如要退出 shell 并终止容器,请运行 exit 命令。
默认情况下,NGINX 镜像被配置为将主要的 NGINX 访问日志和错误日志发送到 Docker 日志收集器。方法是将它们分别链接到 stdout (访问日志)和 stderr(错误日志);然后,两个日志的所有信息都会被写入 Docker 宿主机上的文件 /var/lib/docker/containers/container-ID/container-ID-json.log,其中 container‑ID 是创建容器时返回的长格式 ID。
查看日志的命令:
docker logs container-name
或者可以这样查看日志
curl --unix-socket /var/run/docker-sock http://localhost/containers/container-name/logs?stdout=1&stderr=1
FROM nginx
RUN rm /etc/nginx/nginx.conf /etc/nginx/conf.d/default.conf
COPY content /usr/share/nginx/html
COPY conf /etc/nginx
VOLUME /var/log/nginx/log
创建一个 NGINX 容器和一个用来访问日志目录的辅助容器。这个辅助容器可以安装任何所需的日志记录工具。
docker kill -s HUP container-name
docker restart container-name
可以使用 signals 控制 NGINX,并且 Docker 提供了 kill 命令来向容器发送信号
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。