Docker 详解:如何容器化并使用 Nginx 作为代理

2023-11-19

Status:已弃用

本文已弃用,不再维护。

Reason

本文中的技术已经过时,可能不再反映 Docker 最佳实践。

请参阅

  • Docker 生态系统:常用组件简介
  • 如何在 Ubuntu 14.04 上的 Docker 容器中运行 Nginx

介绍


当涉及到处理 Web 应用程序服务器的请求和提供静态内容时,久经考验的 Nginx 是当今非常流行的选择。当你与docker并将您的应用程序容器化,让 Nginx 为它们提供服务对于大多数情况来说同样有意义。毕竟,这些容器使您能够轻松移植应用程序、快速扩展并为主机(即 Droplet)的安全性添加另一层。

在这篇 DigitalOcean 文章中,我们将学习如何快速设置 docker,从基础镜像创建 docker 容器,并构建它以逐层运行 Nginx。然后,按照我们从头开始的步骤,我们将创建一个 Dockerfile 来自动化整个过程。最后,使用此 Nginx docker 映像,您将能够创建运行 Nginx 的独立沙箱,该沙箱可用于为您的“dockerized”应用程序提供服务。

Glossary


1.Docker简介


2.Nginx 简介


3.在Ubuntu上安装Docker


4. 基本 Docker 命令


  1. 运行 docker 守护进程和 CLI 用法
  2. Docker 命令

5. 构建安装了 Nginx 的 Docker 容器


  1. 从 Ubuntu 创建基础 Docker 容器
  2. 为 Nginx 安装准备基础容器
  3. 安装 Nginx
  4. 配置 Nginx

6. 创建Dockerfile自动构建镜像


  1. Dockerfile 基础知识
  2. Dockerfile 命令概述
  3. 创建 Dockerfile
  4. 定义基本原理
  5. Nginx 安装说明
  6. 自举
  7. 最终的 Dockerfile
  8. 使用Dockerfile自动构建Nginx容器

Docker简介


The 码头工程提供更高级的工具,可以协同工作,这些工具构建在一些 Linux 内核功能之上。目标是帮助开发人员和系统管理员移植应用程序(及其所有依赖项)并让它们跨系统和机器运行 -无头痛.

Docker 通过为称为“docker 容器”的应用程序创建安全的、基于 LXC(即 Linux 容器)的环境来实现这一目标。这些容器是使用 docker 镜像创建的,可以通过手动执行命令或通过自动执行命令来构建这些容器Dockerfile.

Note:要了解有关 docker 及其部件(例如 docker daemon、CLI、images 等)的更多信息,请查看我们的项目介绍文章:docker 解释: 入门.

Nginx 简介


Nginx 是一个非常高性能的 Web 服务器/(反向)代理)。它因其重量轻、相对易于使用且易于扩展(使用附加组件/插件)而广受欢迎。由于其架构,它能够处理a lot请求(几乎无限),这取决于您的应用程序或网站负载,使用旧的替代方案可能真的很难解决。可以考虑the选择用于提供静态文件(例如图像、脚本或样式表)的工具。

在 Ubuntu 上安装 Docker(最新)


随着其最新版本(0.7.1.日期:12 月 5 日),docker 可以部署在各种 Linux 操作系统上,包括 Ubuntu / Debian 和 CentOS / RHEL。

请记住,您可以通过使用 DigitalOcean 在 Ubuntu 13.04 上构建的即用型 docker 镜像来快速入门。

我们将快速回顾一下 Ubuntu(最新)的安装过程。

Ubuntu 安装说明


更新你的液滴:

sudo aptitude    update
sudo aptitude -y upgrade

确保 aufs 支持可用:

sudo aptitude install linux-image-extra-`uname -r`

将 docker 存储库密钥添加到 apt-key 以进行包验证:

sudo sh -c "wget -qO- https://get.docker.io/gpg | apt-key add -"

将 docker 存储库添加到 aptitude 源:

sudo sh -c "echo deb http://get.docker.io/ubuntu docker main\
> /etc/apt/sources.list.d/docker.list"

使用新添加的内容更新存储库:

sudo aptitude    update

最后,下载并安装docker:

sudo aptitude install lxc-docker

Ubuntu 的默认防火墙(UFW:简单的防火墙)默认拒绝所有转发流量,这是docker所需要的。

启用 UFW 转发:

使用 Nano 文本编辑器编辑 UFW 配置。

sudo nano /etc/default/ufw

向下滚动并找到以以下内容开头的行DEFAULT_FORWARD_POLICY.

Replace:

DEFAULT_FORWARD_POLICY="DROP"

With:

DEFAULT_FORWARD_POLICY="ACCEPT"

Press CTRL+X并批准Y保存并关闭。

最后,重新加载 UFW:

sudo ufw reload

基本 Docker 命令


在开始使用 docker 之前,让我们快速浏览一下它的可用命令,以刷新我们的记忆入门文章。

运行 docker 守护进程和 CLI 用法


安装后,docker 守护进程应在后台运行,准备接受 docker CLI 发送的命令。对于某些可能需要手动运行 docker 的情况,请使用以下命令:

运行 docker 守护进程:

sudo docker -d &

docker CLI 用法:

sudo docker [option] [command] [arguments]

Note:docker 需要 sudo 权限才能工作。

Docker 命令


这是当前可用的摘要(版本0.7.1)泊坞窗命令:

attach:	Attach to a running container
build:	Build a container from a Dockerfile
commit:	Create a new image from a container's changes
cp:		Copy files/folders from the containers filesystem to the host path
diff:		Inspect changes on a container's filesystem
events:	Get real time events from the server
export:	Stream the contents of a container as a tar archive
history:	Show the history of an image
images:	List images
import:	Create a new filesystem image from the contents of a tarball
info:	Display system-wide information
insert:	Insert a file in an image
inspect:	Return low-level information on a container
kill:		Kill a running container
load:	Load an image from a tar archive
login:	Register or Login to the docker registry server
logs:	Fetch the logs of a container
port:	Lookup the public-facing port which is NAT-ed to PRIVATE_PORT
ps:		List containers
pull:		Pull an image or a repository from the docker registry server
push:	Push an image or a repository to the docker registry server
restart:	Restart a running container
rm:		Remove one or more containers
rmi:		Remove one or more images
run:		Run a command in a new container
save:	Save an image to a tar archive
search:	Search for an image in the docker index
start:	Start a stopped container
stop:	Stop a running container
tag:		Tag an image into a repository
top:		Lookup the running processes of a container
version:	Show the docker version information

让我们开始!

===

构建安装了 Nginx 的 Docker 容器


在我们的 VPS 上安装了 docker 并快速浏览了它的命令后,我们准备开始实际工作来创建运行 Nginx 的 docker 容器。

Note:尽管在完成本节之后,我们将拥有一个安装了 Nginx 的正在运行的 docker 容器,但由于其复杂性,这绝对不是推荐的方法。然而,它为您提供了一个学习如何使用实时容器并熟悉我们稍后需要定义的命令来自动化该过程的机会。要以更好的方式创建安装了 Nginx 的 docker 映像,请参阅下一节:创建 Dockerfile 自动构建 Nginx 镜像.

从 Ubuntu 创建基础 Docker 容器


使用 docker 的 RUN 命令,我们将开始基于 Ubuntu 映像创建一个新容器。我们将使用“-t”标志将终端附加到它。

sudo docker run -i -t -p 80:80 ubuntu /bin/bash

Note:执行此命令后,docker可能需要pull在为您创建新容器之前先创建 Ubuntu 映像。

记住:您将被附加到您创建的容器。为了脱离并返回到主终端接入点,请运行转义序列:CTRL+P,然后是 CTRL+Q。连接到 Docker 容器就像从另一个容器内部连接到新的 Droplet 一样。

要将自己重新附加到此容器:

  1. 使用列出所有正在运行的容器须藤 docker ps
  2. 找到它的ID
  3. Use sudo docker 附加 [id]连接回其终端

重要的:请不要忘记,由于我们位于容器中,因此以下所有命令都将在那里执行,而不会影响主机。

为 Nginx 安装准备基础容器


为了安装 Nginx 以及我们在该过程中需要的工具,相关的应用程序存储库必须可供下载。

让我们添加 Ubuntu 的universe到基础镜像的默认列表。

echo "deb http://archive.ubuntu.com/ubuntu/ raring main universe" >> /etc/apt/sources.list

使用新添加的源更新列表。

apt-get update

在我们继续安装 Nginx 之前,我们应该安装一些工具,例如 nano - 以防万一。

apt-get install -y nano \
                   wget \
                   dialog \
                   net-tools    

安装 Nginx


由于存储库中提供了它,我们可以简单地使用 apt-get 下载并安装 nginx。

apt-get install -y nginx

配置 Nginx


使用我们在上一步中安装的文本编辑器 nano,让我们创建一个示例 Nginx 配置来代理与应用程序服务器的连接。

# Delete the default configuration
rm -v /etc/nginx/nginx.conf

# Create a blank one using nano text editor
nano /etc/nginx/nginx.conf

首先,必须在文件顶部添加一行not让 Nginx 生成其进程然后退出。

我们不能允许这种情况发生的原因是因为 docker 依赖于单个进程来运行(它甚至可以是进程管理器),并且当该进程停止时(即在生成工作程序后退出),容器就会停止。

从以下内容开始作为第一行nginx.conf:

daemon off;

我们将使用一个简单的示例配置来让 Nginx 作为反向代理运行。将以下内容复制并粘贴到daemon off;操作说明。

worker_processes 1;

events { worker_connections 1024; }

http {

    sendfile on;

    gzip              on;
    gzip_http_version 1.0;
    gzip_proxied      any;
    gzip_min_length   500;
    gzip_disable      "MSIE [1-6]\.";
    gzip_types        text/plain text/xml text/css
                      text/comma-separated-values
                      text/javascript
                      application/x-javascript
                      application/atom+xml;

    # List of application servers
    upstream app_servers {
    
        server 127.0.0.1:8080;
    
    }

    # Configuration for the server
    server {

        # Running port
        listen 80;

        # Proxying the connections connections
        location / {

            proxy_pass         http://app_servers;
            proxy_redirect     off;
            proxy_set_header   Host $host;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host $server_name;

        }
    }
}

按 CTRL+X 保存并退出,然后按 Y 确认。

要运行 Nginx,您可以执行以下命令:

service nginx start

就是这样!现在,Nginx 运行在 docker 容器中,可以从外部端口访问80当我们设置使用-p 80:80 flag.

记住:该 Nginx 文件虽然配置正确,但不会执行任何操作,因为当前服务器上没有运行应用程序服务器。您可以复制并使用另一个示例来代替这个示例,该示例仅用作测试 HTTP 标头的转发代理,直到您安装了应用程序服务器并正常工作。

创建 Dockerfile 以自动构建镜像


正如我们在上一步中提到的,为了可扩展的生产,这种方式创建容器当然不是推荐的方法。正确的方法可以被认为是使用 Dockerfiles 以结构化的方式自动化构建过程。

在完成了在容器内下载和安装 Nginx 的必要命令之后,我们可以使用相同的知识来编写 Dockerfile,docker 可以使用该文件来构建镜像,然后可以使用该镜像轻松运行 Nginx 实例。

在开始处理 Dockerfile 之前,让我们快速回顾一下基础知识。

Dockerfile 基础知识


Dockerfile 是包含以下内容的脚本commands依次声明,docker 按顺序执行,自动创建新的 docker 镜像。它们对部署有很大帮助。

这些文件总是以使用以下命令定义基础镜像开始:FROM命令。从那时起,构建过程开始,接下来执行的每个操作都会形成将在主机上提交的最终映像。

Usage:

# Build an image using the Dockerfile at current location
# Tag the final image with [name] (e.g. *nginx*)
# Example: sudo docker build -t [name] .
sudo docker build -t nginx_img . 

Note:要了解有关 Dockerfile 的更多信息,请查看我们的文章:Docker 解释:使用 Dockerfile 自动构建镜像.

Dockerfile 命令概述


  • ADD:将文件从主机复制到容器中
  • CMD:设置要执行的默认命令,或传递到 ENTRYPOINT
  • ENTRYPOINT:设置容器内应用程序的默认入口点
  • ENV:设置环境变量(例如key = value)
  • EXPOSE:将端口暴露给外部
  • FROM:设置要使用的基础镜像
  • MAINTAINER:设置 Dockerfile 的作者/所有者数据
  • RUN:运行命令并提交最终结果(容器)图像
  • USER:设置从镜像运行容器的用户
  • VOLUME:将目录从主机挂载到容器
  • WORKDIR:设置指令的目录CMD待执行

创建 Dockerfile


要使用 nano 文本编辑器在当前位置创建 Dockerfile,请执行以下命令:

sudo nano Dockerfile

Note:将以下所有行逐一附加以形成要保存并用于构建的 Dockerfile。

定义基本原理


让我们通过定义基础知识(基础知识)开始我们的 Dockerfile,例如FROM图像(即Ubuntu)和MAINTAINER.

############################################################
# Dockerfile to build Nginx Installed Containers
# Based on Ubuntu
############################################################

# Set the base image to Ubuntu
FROM ubuntu

# File Author / Maintainer
MAINTAINER Maintaner Name

Nginx 安装说明


按照上一节中的步骤,让我们形成安装 Nginx 的块。

# Install Nginx

# Add application repository URL to the default sources
RUN echo "deb http://archive.ubuntu.com/ubuntu/ raring main universe" >> /etc/apt/sources.list

# Update the repository
RUN apt-get update

# Install necessary tools
RUN apt-get install -y nano wget dialog net-tools

# Download and Install Nginx
RUN apt-get install -y nginx    

自举


添加安装 Nginx 的说明后,让我们完成配置 Nginx 并使用 Dockerfile 将默认配置文件替换为我们在构建期间提供的配置文件。

# Remove the default Nginx configuration file
RUN rm -v /etc/nginx/nginx.conf

# Copy a configuration file from the current directory
ADD nginx.conf /etc/nginx/

# Append "daemon off;" to the beginning of the configuration
RUN echo "daemon off;" >> /etc/nginx/nginx.conf

# Expose ports
EXPOSE 80

# Set the default command to execute
# when creating a new container
CMD service nginx start

最终的 Dockerfile


最后,Dockerfile 应该是这样的:

############################################################
# Dockerfile to build Nginx Installed Containers
# Based on Ubuntu
############################################################

# Set the base image to Ubuntu
FROM ubuntu

# File Author / Maintainer
MAINTAINER Maintaner Name

# Install Nginx

# Add application repository URL to the default sources
RUN echo "deb http://archive.ubuntu.com/ubuntu/ raring main universe" >> /etc/apt/sources.list

# Update the repository
RUN apt-get update

# Install necessary tools
RUN apt-get install -y nano wget dialog net-tools

# Download and Install Nginx
RUN apt-get install -y nginx  

# Remove the default Nginx configuration file
RUN rm -v /etc/nginx/nginx.conf

# Copy a configuration file from the current directory
ADD nginx.conf /etc/nginx/

# Append "daemon off;" to the beginning of the configuration
RUN echo "daemon off;" >> /etc/nginx/nginx.conf

# Expose ports
EXPOSE 80

# Set the default command to execute
# when creating a new container
CMD service nginx start

按 CTRL+X 再次保存并退出文件,然后按 Y 确认。

使用Dockerfile自动构建Nginx容器


正如我们首先在“基础知识”部分中讨论的那样,Dockerfiles 的用法包括使用“docker build”命令调用它们。

由于我们指示 docker 从当前目录复制配置(即 nginx.conf)以替换默认配置,因此我们需要确保在开始构建过程之前将其与此 Dockerfile 一起放置。

Note:上面解释了复制的过程inNginx 配置为您提供了极大的灵活性,并且无需处理与容器的连接和分离来创建配置文件,从而节省大量时间。现在您可以简单地使用一个来直接构建和运行图像。

创建样本nginx.conf使用文本编辑器 nano:

sudo nano nginx.conf

并替换其内容以将其用作转发代理进行测试:

worker_processes 1;

events { worker_connections 1024; }

http {

    sendfile on;
    
    server {

        listen 80;
        
        location / {
            proxy_pass http://httpstat.us/;
            proxy_set_header  X-Real-IP  $remote_addr;
        }
    }
}

让我们以同样的方式保存并退出 nginx.conf,按 CTRL+X 并按 Y 确认。

这个 docker 镜像将允许我们移植所有进度并使用单个命令快速创建运行 Nginx 的容器。

要开始使用它,请使用以下内容构建一个新的容器映像:

sudo docker build -t nginx_img_1 . 

使用该图像(我们标记为 nginx_img_1),我们可以运行一个新容器:

sudo docker run -name nginx_cont_1 -p 80:80 -i -t nginx_img_1

现在您可以访问 Droplet 的 IP 地址,并且运行 docker 容器的 Nginx 将完成其工作,将您转发到 HTTP 状态测试页面。

Example:

# Usage: Visit http://[my droplet's ip]
http://95.85.10.236/200

响应示例:

200 OK

有关安装 docker(包括其他操作系统)的完整说明,请查看docker 安装文档位于docker.io.

提交者:https://twitter.com/ostezer”>I.S.泰泽尔
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker 详解:如何容器化并使用 Nginx 作为代理 的相关文章

  • 将查询结果作为 CSV 文件从 Docker PostgreSQL 容器导出到本地计算机

    我不确定这是否可能 或者我是否做错了什么 因为我对 Docker 还很陌生 基本上 我想将 PostgreSQL docker 容器内的查询结果作为 csv 文件导出到本地计算机 这就是我到目前为止所得到的 首先 我使用以下命令运行 Pos
  • 如何从 docker 运行 Maven 包装器?

    我必须从 dockerfile 运行 Maven 包装器命令 但我不知道该怎么做 当我尝试这样写时 RUN mvnw s settings xml clean install 这个命令不起作用 我有错误mvnw not found 我的泊坞
  • Nginx - 特定位置的另一个根

    我在下面有一些静态 html 文件 var www project1 该项目的 Nginx 配置是 server name www project1 com project1 com root var www project1 locati
  • 实时/热重载不适用于 dockerized NestJS API

    我遇到了一个奇怪的问题 我目前正在使用 Windows 10 并通过 WSL2 运行 docker 我在 Windows 文件管理器中克隆了存储库 并且我尝试在 DEV 中运行它 也就是说 一旦我更新了在我的本地存储库中的文件中 此更改反映
  • 禁用 Kubernetes NGINX 入口的 SSL 重定向

    默认情况下 在 Kubernetes NGINX 入口中启用 SSL 重定向 如何禁用此功能 目前的实施如下 apiVersion extensions v1beta1 kind Ingress metadata name project
  • 为什么docker容器提示“权限被拒绝”?

    我使用以下命令来运行 docker 容器 并从主机映射目录 root database 到容器 tmp install database docker run it name oracle install v root database t
  • (Docker) 如何在 WordPress 容器中使用单独的 Composer 容器安装依赖项?

    Dockerfile FROM wordpress ENV REFRESHED AT 2015 08 12 ADD composer json var www html ADD composer lock var www html inst
  • 我的 s3 存储桶如何使用 nginx 在不同文件夹中托管多个网站?

    我在 Amazon 上有一个 s3 Cloudfront 解决方案 我想在存储桶内的不同文件夹中托管不同的网站 并通过以下两种方式之一访问它们 子域 gt mywebsite1 mydomain com 或者 路径 gt www mydom
  • Docker nginx 代理到主机

    简短的介绍 Nginx 运行在 docker 上 如何配置 nginx 以便将调用转发到主机 详细描述 我们有一个 Web 应用程序与几个后端通信 假设为rest1 rest2 和rest3 我们负责rest1 让我们考虑一下我开始rest
  • dockerfile 没有创建目录并复制文件?

    我的 dockerfile 中有以下内容 还有很多 不过我把相关的部分贴在这里了 RUN useradd jenkins USER jenkins Maven settings RUN mkdir m2 COPY settings xml
  • Ctrl-p 和 Ctrl-n 在 Docker 下表现异常

    For the life of me I can t seem to figure out why ctrl p and ctrl n don t work like they re supposed to under the Docker
  • 连接到上游时 Django Gunicorn nginx(111:连接被拒绝)

    一个Django应用程序在AWS实例上运行 通过gunicorn和nginx配置 它运行良好一年多了 但是突然 我收到了502 bad gateway错误 然后我在nginx错误日志中看到了下面提到的消息 2017 05 17 16 18
  • nginx/mono 2.8 上的 ASP.Net MVC 2

    我正在尝试在 Linux 环境上设置 ASP Net MVC 2 应用程序 我在 VirtualBox 上安装了 Ubuntu 10 10 然后从源安装了 Mono 2 8 之后我安装了 nginx 并按照建议进行配置here http w
  • 如何使用缓存快速重建dockerfile?

    我想优化我的 Dockerfile 我希望将缓存文件保留在磁盘中 但是 当我跑步的时候我发现docker build 它总是尝试从网络获取每个文件 我希望在构建期间共享我的缓存目录 例如 var cache yum x86 64 6 但是
  • 开发者环境-如何调用/消费其他微服务

    背景 我的环境 Java Play2 MySql 我在 Play2 gt S1 S2 S3 上编写了 3 个无状态 Restful 微服务 S1 消耗来自 S2 和 S3 的数据 因此 当用户点击 S1 时 该服务会异步调用 S2 S3 合
  • 如何构建一个不链接到 musl libc 的 go 可执行文件

    So 官方的 Go 构建容器基于 Alpine 高山用途musl https www musl libc org 作为 libc 而不是 glibc 我需要在容器中构建一个可以在使用 glibc 的 Ubuntu 上运行的 Go 可执行文件
  • 使用 Nginx 时缺少 HTTP 状态代码名称

    我正在使用 Nginx 将所有 HTTP 请求重定向到 HTTPS 在我的 Spring Boot 应用程序中 这是我正在使用的 nginx 配置 通过它我可以将所有请求重定向到 Https 但是当我这样做时 我得到了状态码返回正确 但没有
  • Docker 不遵循构建目录中的符号链接

    我正在对一个应用程序进行 Docker 化 其中涉及通过 Clang 将二进制文件与其他 C 文件链接 我们维护二进制文件的符号链接版本 因为它们在整个代码库中使用 我的 Docker 构建目录包含整个代码库 包括源文件以及这些源文件的符号
  • Docker Python 脚本找不到文件

    我已经成功构建了一个 Docker 容器 并将应用程序的文件复制到 Dockerfile 中的容器中 但是 我正在尝试执行引用输入文件 在 Docker 构建期间复制到容器中 的 Python 脚本 我似乎无法弄清楚为什么我的脚本告诉我它无
  • 更改Docker容器中的mysql密码

    我如何更改 docker 容器中的 root 密码 因为一旦我停止 mysql 服务 容器就会自动停止 我应该停止 mysql 容器并部署一个新容器吗 您可以使用正在运行的容器更改它docker exec session https doc

随机推荐

  • 如何在 CentOS 7 上安装 Node.js 和 npm

    Node js 是一个跨平台的 JavaScript 运行时环境 允许服务器端执行 JavaScript 代码 Node js 主要用于后端 但作为全栈和前端解决方案也很受欢迎 npm 是 Node Package Manager 的缩写
  • 如何在 CentOS 8 上安装 Tomcat 9

    Apache Tomcat 是 Java Servlet JavaServer Pages Java 表达式语言和 Java WebSocket 技术的开源实现 它是当今世界上采用最广泛的应用程序和 Web 服务器之一 Tomcat 使用简
  • 如何在 Debian 9 上安装 Asterisk

    Asterisk 是最流行且广泛采用的用于构建通信应用程序的开源框架 它被世界各地的个人 小型企业 大型企业和政府使用 Asterisk 功能包括电话会议 语音邮件 等待音乐 呼叫转接 呼叫排队 呼叫录音 数据库存储 检索等等 在本教程中
  • 如何在 CentOS 7 上安装 Minecraft 服务器

    我的世界 是有史以来最受欢迎的游戏之一 这是一款关于放置方块并进行冒险的沙盒视频游戏 在本教程中 我们将完成在 CentOS 7 上安装和配置 Minecraft 服务器所需的步骤 我们将使用 Systemd 来运行 Minecraft 服
  • 如何在 CentOS 7 上安装 Elasticsearch

    Elasticsearch 是一个开源分布式全文搜索和分析引擎 它支持 RESTful 操作 允许您实时存储 搜索和分析大量数据 Elasticsearch 是最流行的搜索引擎之一 为具有复杂搜索要求的应用程序 例如大型电子商务商店和分析应
  • Linux 中的 Tar 命令(创建和提取档案)

    The tar命令通过将一组文件转换为存档来创建 tar 文件 它还可以提取 tar 存档 显示存档中包含的文件列表 向现有存档添加其他文件以及各种其他类型的操作 Tar 最初设计用于创建档案以将文件存储在磁带上 这就是它得名 的原因 Ta
  • 如何在 Ubuntu 18.04 上启用 SSH

    Secure Shell SSH 是一种加密网络协议 用于客户端和服务器之间的安全连接 在本教程中 我们将向您展示如何在 Ubuntu 桌面计算机上启用 SSH 启用 SSH 将允许您远程连接到 Ubuntu 计算机并安全地传输文件或执行管
  • Spring Boot @SpringBootApplication,SpringApplication 类

    春季启动 SpringBootApplication注解 春季启动 SpringBootApplication注解用于标记一个配置类 该类声明了一个或多个 Bean方法和触发器auto configuration和组件扫描 这与声明一个类相
  • 如何在 Ruby 中使用字符串

    介绍 A string是一个或多个字符的序列 可以由字母 数字或符号组成 Ruby 中的字符串是对象 与其他语言不同 字符串是mutable 这意味着可以就地更改它们 而不用创建新字符串 您几乎会在编写的每个程序中使用字符串 字符串允许您使
  • 有用的 Bash 别名和函数简介

    介绍 在命令行上操作的越多 您就越会发现您使用的大多数命令只是可用命令的很小的子集 大多数任务都是习惯性的 您可能每天都以相同的方式运行这些任务 虽然许多最常见的命令实用程序的制造商试图通过使用缩写名称来消除无关的输入 想想通过输入 ls
  • 在 Ubuntu 14.04 上使用 Consul(服务发现系统)简介

    介绍 Consul是一个分布式 高可用 数据中心感知的服务发现和配置系统 它可用于在灵活而强大的界面中呈现服务和节点 使客户端始终能够了解其所属基础设施的最新视图 Consul 提供了许多不同的功能 用于提供有关您的基础设施的一致且可用的信
  • 如何在 Ubuntu 22.04 上使用 uWSGI 和 Nginx 为 Flask 应用程序提供服务

    介绍 在本指南中 您将使用FlaskUbuntu 22 04 上的微框架 本文的大部分内容将讨论如何设置uWSGI应用服务器以及如何启动应用程序和配置Nginx充当前端反向代理 先决条件 在开始本指南之前 您应该 安装了 Ubuntu 22
  • 如何使用 Nginx、Let's Encrypt 和 Docker Compose 保护容器化 Node.js 应用程序

    介绍 有多种方法可以增强您的灵活性和安全性Node js应用 用一个反向代理 like Nginx为您提供负载平衡请求 缓存静态内容和实施传输层安全 TLS 在服务器上启用加密 HTTPS 可确保与应用程序之间的通信保持安全 在容器上使用
  • Python 中的 numpy.append()

    Python numpyappend 函数用于合并两个数组 该函数返回一个新数组 原数组保持不变 NumPy append 语法 函数语法为 numpy append arr values axis None The arr可以是类似数组的
  • 如何使用 Apache 和 Nginx 创建临时和永久重定向

    介绍 HTTP 重定向或 URL 重定向是一种将一个域或地址指向另一个域或地址的技术 重定向有很多用途 并且需要考虑几种不同类型的重定向 每当站点需要将请求一个地址的人定向到另一个地址时 就会使用重定向 当您创建内容和管理服务器时 您经常会
  • eclipse.ini vm 参数 - eclipse.ini 文件位置 Mac、Windows

    eclipse ini是用于控制Eclipse启动的配置文件 我们可以使用 Xms Xmx 参数配置 Eclipse VM 参数 例如要使用的 JDK eclipse ini vm permgen 空间 最大和最小堆大小 eclipse i
  • 如何在 Java 中将字符串转换为数组

    有时我们不得不分开字符串到数组基于分隔符或某些正则表达式 例如 读取 CSV 文件行并解析它们以将所有数据获取到字符串数组 在本教程中 我们将学习如何在 Java 程序中将字符串转换为数组 Java 中的字符串到数组 字符串类split S
  • Java优先级队列

    我们时不时地需要以特定的顺序处理队列中的项目 优先级队列是一种完成这项工作的数据结构 Java优先级队列与 普通 不同queue 它不是 先进先出 而是按优先级顺序检索项目 Java优先级队列 The java util PriorityQ
  • Java 中的 CallableStatement 示例

    java中的CallableStatement用于从java程序中调用存储过程 存储过程是我们在数据库中为某些任务编译的一组语句 当我们处理复杂场景的多个表时 存储过程很有用 我们可以将所需的数据发送到存储过程 并在数据库服务器本身中执行逻
  • Docker 详解:如何容器化并使用 Nginx 作为代理

    Status 已弃用 本文已弃用 不再维护 Reason 本文中的技术已经过时 可能不再反映 Docker 最佳实践 请参阅 Docker 生态系统 常用组件简介 如何在 Ubuntu 14 04 上的 Docker 容器中运行 Nginx