>  기사  >  운영 및 유지보수  >  Linux 서버에서 안전하고 안정적인 Docker 이미지 웨어하우스를 구축하는 방법은 무엇입니까?

Linux 서버에서 안전하고 안정적인 Docker 이미지 웨어하우스를 구축하는 방법은 무엇입니까?

王林
王林원래의
2023-07-28 20:16:511562검색

Linux 서버에서 안전하고 안정적인 Docker 이미지 웨어하우스를 구축하는 방법은 무엇입니까?

컨테이너 기술의 급속한 발전으로 Docker는 컨테이너화된 애플리케이션을 구축하고 관리하기 위한 일반적인 도구가 되었습니다. 그러나 실제 응용에서는 안전하고 안정적인 Docker 이미지 웨어하우스를 어떻게 구축하느냐가 중요한 문제입니다. 이 기사에서는 Linux 서버에서 안전하고 안정적인 Docker 이미지 웨어하우스를 구축하는 방법을 소개하고 참조용 코드 예제를 제공합니다.

  1. Docker 설치

먼저 Linux 서버에 Docker를 설치해야 합니다. 다음 명령을 통해 설치할 수 있습니다.

$ sudo apt-get update
$ sudo apt-get install docker-ce

설치가 완료된 후 다음 명령을 실행하여 설치 성공 여부를 확인합니다.

$ docker version
  1. Docker 이미지 웨어하우스 구성

다음으로 Docker를 구성해야 합니다. 이미지 창고. Docker의 공식 레지스트리 이미지 또는 Harbor, Nexus 등과 같은 타사 오픈 소스 이미지를 사용하도록 선택할 수 있습니다.

공식 Docker Registry 이미지를 예로 들면 다음 명령을 통해 레지스트리 컨테이너를 시작할 수 있습니다.

$ docker run -d -p 5000:5000 --name registry registry:latest

시작이 완료된 후 다음 명령을 통해 레지스트리가 제대로 작동하는지 확인할 수 있습니다.

$ curl http://localhost:5000/v2/_catalog

If 빈 배열이 [] 로 반환되어 레지스트리가 성공적으로 실행되었음을 나타냅니다. [],说明Registry已经成功运行。

  1. 配置镜像仓库的认证和授权

为了保证镜像仓库的安全,需要添加认证和授权功能。可以使用Nginx作为反向代理服务器,并使用Basic Auth认证方式。

首先,安装Nginx:

$ sudo apt-get install nginx

然后,创建一个用于存放认证信息的密码文件:

$ sudo sh -c "echo -n 'admin:' >> /etc/nginx/.htpasswd"
$ sudo sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd"

创建完成后,需要编辑Nginx配置文件/etc/nginx/sites-available/default,添加如下内容:

server {
    listen 80;
    server_name <your-domain-name>;

    location / {
        proxy_pass http://localhost:5000;

        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
}

替换454b098903dd34fa7086458fb3f097b6为你的域名。

保存配置文件并重启Nginx:

$ sudo systemctl restart nginx
  1. 配置HTTPS支持

为了保证通信的安全性,可以使用HTTPS协议进行通信。需要先为镜像仓库生成自签名证书。

首先,安装OpenSSL:

$ sudo apt-get install openssl

然后,生成私钥和自签名证书:

$ sudo openssl req -newkey rsa:2048 -nodes -keyout registry.key -x509 -days 365 -out registry.crt

生成的registry.key为私钥文件,registry.crt为自签名证书文件。

接下来,编辑Nginx配置文件/etc/nginx/sites-available/default,添加如下内容:

server {
    listen 443 ssl;
    server_name <your-domain-name>;

    ssl_certificate /path/to/registry.crt;
    ssl_certificate_key /path/to/registry.key;

    location / {
        proxy_pass http://localhost:5000;

        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
}

替换454b098903dd34fa7086458fb3f097b6

    이미지 웨어하우스의 인증 및 승인 구성

      이미지 웨어하우스의 보안을 보장하려면 인증 및 승인 기능을 추가해야 합니다. Nginx를 역방향 프록시 서버로 사용하고 기본 인증 인증 방법을 사용할 수 있습니다.
    1. 먼저 Nginx를 설치합니다:
    $ sudo systemctl restart nginx

    그런 다음 인증 정보를 저장할 비밀번호 파일을 만듭니다:

    $ sudo vi /etc/docker/daemon.json

    생성 후 Nginx 구성 파일 /etc/nginx/sites-available/default를 편집해야 합니다. code>에 다음을 추가하세요.

    {
        "insecure-registries": ["<your-domain-name>:5000"]
    }

    454b098903dd34fa7086458fb3f097b6을 도메인 이름으로 바꾸세요.

    구성 파일을 저장하고 Nginx를 다시 시작하세요.

    $ sudo systemctl restart docker

      HTTPS 지원 구성

      🎜🎜통신 보안을 보장하기 위해 통신에 HTTPS 프로토콜을 사용할 수 있습니다. 먼저 이미지 웨어하우스에 대한 자체 서명된 인증서를 생성해야 합니다. 🎜🎜먼저 OpenSSL을 설치합니다: 🎜
      $ docker tag image <your-domain-name>:5000/image
      $ docker push <your-domain-name>:5000/image
      $ docker pull <your-domain-name>:5000/image
      🎜그런 다음 개인 키와 자체 서명 인증서를 생성합니다: 🎜rrreee🎜생성된 registry.key는 개인 키 파일인 registry.crt 자체 서명된 인증서 파일입니다. 🎜🎜다음으로 Nginx 구성 파일 <code>/etc/nginx/sites-available/default를 편집하고 다음 콘텐츠를 추가합니다. 🎜rrreee🎜 454b098903dd34fa7086458fb3f097b6바꾸기 > 귀하의 도메인 이름에 대해. 🎜🎜구성 파일을 저장하고 Nginx를 다시 시작하세요. 🎜rrreee🎜🎜Docker 클라이언트를 사용하여 이미지 저장소와 상호 작용🎜🎜🎜마지막으로 Docker 클라이언트를 사용하여 이미지 저장소와 상호 작용합니다. 먼저 Docker에 대한 신뢰할 수 있는 저장소를 구성해야 합니다. 🎜rrreee🎜구성 파일에 다음 콘텐츠를 추가합니다. 🎜rrreee🎜구성 파일을 저장하고 Docker 서비스를 다시 시작합니다. 🎜rrreee🎜이제 Docker 클라이언트를 사용하여 이미지 저장소, 예를 들어 이미지 푸시 및 풀: 🎜rrreee🎜위는 Linux 서버에 안전하고 안정적인 Docker 이미지 웨어하우스를 구축하기 위한 모든 단계와 코드 예제입니다. 다음 단계를 따르면 안전하고 신뢰할 수 있는 Docker 이미지 웨어하우스를 구축하여 컨테이너화된 애플리케이션의 안정성과 보안을 보장할 수 있습니다. 🎜

위 내용은 Linux 서버에서 안전하고 안정적인 Docker 이미지 웨어하우스를 구축하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.