Alpine Linux 3.9.0에서 Docker Swarm 생성
소개이 안내서는 여러 개의 Alpine Linux 3.9.0 서버 및 Portainer를 사용하여 Docker 스웜을 생성 및 구성하는 방법을 보여줍니다. 그쪽으로 알아주십시오
LXC 컨테이너 (Linux 컨테이너)는 단일 호스트에서 여러 개의 격리 된 Linux 시스템을 실행하는 데 사용할 수있는 Linux의 운영 체제 기능입니다.
이 지침은 격리 된 Linux 컨테이너 호스팅을위한 서버 구성의 기본 단계를 안내합니다. 다음과 같은 기능을 구성 할 것입니다.
ssh [email protected]
및ssh [email protected]
이 안내서는 다음을 가정합니다.
튜토리얼이 끝나면 인터넷에 액세스 할 수 있지만 서로 핑할 수없는 두 개의 가상 컨테이너가 생깁니다. 또한 example.com
컨테이너 에서 포트 포워딩을 구성 할 것 입니다. Proxmox 패킷의 도구를 사용하여 보안 구성 및 관리 패널을 배포합니다.
LXC 컨테이너 관리에만 Proxmox를 사용합니다. 일반적으로 KVM도 지원하지만 Vultr에서는 중첩 가상화가 금지되어 있습니다. 시작하기 전에 공식 웹 사이트에서 Proxmox ISO를 다운로드해야합니다. 우리는를 사용할 것 Proxmox VE 5.0 ISO Installer
입니다. 기본 설정으로 이미지에서 OS를 설치하고 가상 머신을 재부팅하십시오. 또한 소스에서 proxmox를 수동으로 설치할 수 있지만 대부분의 경우에는 필요하지 않습니다 ( 여기 의 지시 사항을 따르십시오 ).
SSH로 호스트에 연결하고 proxmox 템플릿 목록을 업데이트 한 후 컨테이너에 적합한 템플릿을 다운로드하십시오.
apt-get update
pveam update
pveam available
pveam download local ubuntu-14.04-standard_14.04-1_amd64.tar.gz
이제 리눅스 브리지에 연결된 네트워크 인터페이스를 가진 리눅스 컨테이너를 만들어야합니다. /etc/network/interfaces
다음 줄을 열고 추가하십시오.
auto vmbr1
iface vmbr1 inet static
address 10.100.0.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
시스템 재부팅 후 Ubuntu 14.04
템플릿 에서 새 컨테이너를 만들 수 있습니다 .
pct create 200 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr1,ip=10.100.0.200/24,gw=10.100.0.1
을 사용하여 컨테이너를 확인하고로 pct list
컨테이너 # 200을 시작 pct start 200
하고로 쉘을 입력 할 수 있습니다 pct enter 200
. 로 네트워크 설정 및 주소를 확인할 수도 있습니다 ip addr
.
컨테이너 내부에 인터넷 연결을 제공하려면을 활성화해야합니다 NAT
. 다음은 NAT 기술의 도움으로 컨테이너에서 인터넷으로 트래픽을 전달할 수있게합니다. vmbr0
다리 외부 인터페이스에 연결되어 상기 vmbr1
다리가 용기에 연결된다.
sysctl -w net.ipv4.ip_forward=1
iptables --table nat --append POSTROUTING --out-interface vmbr0 -j MASQUERADE
iptables --append FORWARD --in-interface vmbr1 -j ACCEPT
컨테이너를 입력하고 pct enter 200
내부에 웹 서버를 구성하십시오.
apt-get update
apt-get install nginx
service nginx start
exit
이제 웹 사이트를 컨테이너로 프록시하도록 서버에서 Nginx를 구성해야합니다.
apt-get update
apt-get install nginx
/etc/nginx/sites-available/box200
다음 내용 으로 새 구성 파일 을 작성하십시오 .
server {
listen 80;
server_name server200.example.com;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
location / {
proxy_pass http://10.100.0.200/;
}
}
Nginx는 이제 server200.example.com
서버에서 IP 10.100.0.200으로 컨테이너에 대한 각 HTTP 요청을 프록시합니다 . 이 구성을 활성화하십시오.
ln -s /etc/nginx/sites-available/box200 /etc/nginx/sites-enabled/
service nginx restart
샌드 박스에 쉽게 액세스하려면 SSH 세션을 컨테이너로 전달해야합니다. 그렇게하려면 루트 서버에서 새 사용자를 작성하십시오. 비밀번호를 입력하는 것을 잊지 마십시오. 다른 매개 변수는 필요하지 않습니다.
adduser box200
su - box200
ssh-keygen
cat .ssh/id_rsa.pub
exit
이 SSH 키를 복사하고 컨테이너를 입력하여 키를 추가하십시오.
pct enter 200
mkdir .ssh
nano .ssh/authorized_keys
exit
서버에서 .ssh/authorized_keys
파일에 다음 줄을 추가 하십시오.
command="ssh [email protected]",no-X11-forwarding,no-agent-forwarding,no-port-forwarding <YOUR SSH KEY>
<YOUR SSH KEY>
가정용 공개 키로 변경 하는 것을 잊지 마십시오 . 또는 명령 행에서 다음을 실행할 수 있습니다.
echo 'command="ssh [email protected]",no-X11-forwarding,no-agent-forwarding,no-port-forwarding <YOUR SSH KEY>' >> .ssh/authorized_keys
그런 다음 ssh를 사용하여 샌드 박스에 연결할 수 있습니다.
`ssh box200@<your_server_IP>`
몇 가지 보안 개선 사항을 구현할 차례입니다. 먼저 기본 SSH 포트를 변경하려고합니다. 그런 다음 기본 HTTP 인증으로 Proxmox 관리 페이지를 보호하려고합니다.
nano /etc/ssh/sshd_config
주석 해제 및 회선 변경
#Port 22
에
Port 24000
ssh를 다시 시작하십시오.
service ssh restart
새 포트로 ssh에 다시 연결하십시오.
ssh root@<your_IP> -p 24000
파일을 만듭니다 /etc/default/pveproxy
.
ALLOW_FROM="127.0.0.1"
DENY_FROM="all"
POLICY="allow"
pveproxy
변경 사항을 적용하려면 다시 시작하십시오 .
/etc/init.d/pveproxy restart
nginx를 구성하십시오 (이전에 수행하지 않은 경우).
apt-get install nginx
service nginx restart
에서 기본 구성을 만듭니다 /etc/nginx/site-available/default
.
server {
listen 80;
server_name example.com;
rewrite ^ https://$hostname.example.com$request_uri? permanent;
}
server {
listen 443 ssl;
server_name example.com;
#auth_basic "Restricted";
#auth_basic_user_file htpasswd;
#location / { proxy_pass https://127.0.0.1:8006; }
}
유효한 SSL 인증서를 확보하고 nginx 구성을 업데이트하십시오. 예를 들어, certbox 및 letsencrypt를 사용하여 수행 할 수 있습니다. 자세한 내용은 여기를 클릭 하십시오 .
wget https://dl.eff.org/certbot-auto
chmod +x certbot-auto
./certbot-auto --nginx
이제 nginx 설정은 다음과 같아야합니다 (또는 나중에 수동으로 변경할 수 있음). ssl, auth 및 location 행의 주석을 해제하는 것을 잊지 마십시오.
server {
listen 80;
server_name example.com;
rewrite ^ https://$hostname.example.com$request_uri? permanent;
}
server {
listen 443 ssl;
server_name example.com;
ssl on;
auth_basic "Restricted";
auth_basic_user_file htpasswd;
location / { proxy_pass https://127.0.0.1:8006; }
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
}
Htpasswd 생성기를/etc/htpasswd
사용하여 파일을 작성하십시오 .
nano /etc/nginx/htpasswd
Nginx를 다시 시작하십시오
service nginx restart
이제 https://example.com
기본 인증 후 관리 콘솔을 볼 수 있습니다 .
컨테이너는 이제 HTTP 요청 및 SSH로 사용 가능합니다. 이제 외부 서버에서 컨테이너로 포트 전달을 구성 할 수 있습니다. 예를 들어, 다음 example.com:8080
을 10.100.0.200:3000
입력하기 위한 맵핑 입니다.
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8080 -j DNAT --to 10.100.0.200:3000
현재 규칙을 볼 수 있습니다.
`iptables -t nat -v -L PREROUTING -n --line-number`
다음을 사용하여 번호로 규칙을 삭제할 수도 있습니다.
`iptables -t nat -D PREROUTING <#>`.
이제 한 컨테이너에서 다른 컨테이너에 액세스 할 수 있습니다.
pct create 250 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr1,ip=10.100.0.250/24,gw=10.100.0.1
pct start 250
pct enter 250
ping 10.100.0.200
컨테이너 250에서 200으로의 액세스를 제한하려면 각 컨테이너를 개인 브리지에 연결하고 브리지 간 전달을 비활성화해야합니다.
기존 컨테이너를 삭제하십시오.
pct stop 200
pct stop 250
pct destroy 200
pct destroy 250
의 내용을 변경하십시오 /etc/network/interfaces
.
auto vmbr1
iface vmbr1 inet static
address 10.100.1.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
auto vmbr2
iface vmbr2 inet static
address 10.100.2.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
reboot
시스템
전달 사용
`sysctl -w net.ipv4.ip_forward=1`
이러한 변경 사항을 영구적으로 유지하려면 /etc/sysctl.conf
파일을 편집 하고 다음 텍스트를 찾으십시오.
#net.ipv4.ip_forward=1
주석 처리를 제거하십시오.
net.ipv4.ip_forward=1
sysctl -p
변경 사항을 즉시 적용하도록 실행할 수도 있습니다 .
컨테이너를 만듭니다.
pct create 200 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr1,ip=10.100.1.200/24,gw=10.100.1.1
pct create 250 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr2,ip=10.100.2.250/24,gw=10.100.2.1
pct start 200
및로 컨테이너를 시작하십시오 pct start 250
.
iptables
규칙을 비 웁니다 .
iptables -F
NAT를 활성화하십시오.
iptables --table nat --append POSTROUTING --out-interface vmbr0 -j MASQUERADE
vmbr0
외부 인터페이스를 포함하는 브릿지입니다.
외부 인터페이스에서 전달을 허용하십시오.
iptables --append FORWARD --in-interface vmbr0 -j ACCEPT
컨테이너에서 인터넷으로 전달을 허용하십시오.
iptables -A FORWARD -i vmbr1 -o vmbr0 -s 10.100.1.0/24 -j ACCEPT
iptables -A FORWARD -i vmbr2 -o vmbr0 -s 10.100.2.0/24 -j ACCEPT
다른 전달을 삭제하십시오.
iptables -A FORWARD -i vmbr1 -j DROP
iptables -A FORWARD -i vmbr2 -j DROP
자, 확인 10.100.1.200
캔 핑을 8.8.8.8
하지만 핑 (ping) 할 수없는 10.100.2.250
그 10.100.2.250
캔 핑 8.8.8.8
하지만 핑 (ping) 할 수 없습니다 10.100.1.200
.
iptables와 관련된 명령의 순서가 중요합니다. 규칙을 운영하는 가장 좋은 방법은을 사용하는 것 iptables-persistent
입니다. 이 패키지는 당신이 파일의 iptables 규칙을 저장하는 데 도움이 /etc/iptables/rules.v4
그리고 /etc/iptables/rules.v6
그것은 자동으로 시스템을 다시 부팅 한 후로드 할 수 있습니다. 다음과 같이 설치하십시오.
apt-get install iptables-persistent
YES
프롬프트가 표시되면 선택하십시오 .
소개이 안내서는 여러 개의 Alpine Linux 3.9.0 서버 및 Portainer를 사용하여 Docker 스웜을 생성 및 구성하는 방법을 보여줍니다. 그쪽으로 알아주십시오
RancherOS는 시스템 서비스를 실행하기 위해 시스템 Docker 데몬을 PID 0으로 실행하는 매우 가벼운 운영 체제 (약 60MB)입니다.
PHP 응용 프로그램은 일반적으로 웹 서버, 관계형 데이터베이스 시스템 및 언어 인터프리터 자체로 구성됩니다. 이 튜토리얼에서 우리는 활용할 것입니다
소개 Docker는 컨테이너로 실행되는 프로그램을 배포 할 수있는 응용 프로그램입니다. 인기있는 Go 프로그래밍 언어로 작성되었습니다.
다른 시스템을 사용하십니까? Docker는 컨테이너로 실행되는 프로그램을 배포 할 수있는 응용 프로그램입니다. 인기있는 Go 프로그램에서 작성되었습니다.
이 기사에서는 Docker 컨테이너 내에 Node 응용 프로그램을 배포하는 방법을 보여줍니다. 참고 :이 튜토리얼은 Docker가 설치되어 있고 읽은 것으로 가정합니다.
Harbor는 Docker 이미지를 저장하고 배포하는 오픈 소스 엔터프라이즈 급 레지스트리 서버입니다. 하버, 오픈 소스 Docker Distribution b 확장
Kubernetes는 서버 클러스터 전체에서 컨테이너화 된 애플리케이션을 관리하기 위해 Google에서 개발 한 오픈 소스 플랫폼입니다. 그것은 10 년을 기반으로하고
다른 시스템을 사용하십니까? 소개 Rancher는 컨테이너를 실행하고 개인 컨테이너 서비스를 구축하기위한 오픈 소스 플랫폼입니다. 목장주 기지
개요이 기사는 Kubernetes 클러스터를 kubeadm과 함께 시작하고 실행하는 데 도움을주기 위해 작성되었습니다. 이 가이드는 두 대의 서버를 배포합니다.
이 기사에서는 CoreOS에 docker-compose를 설치하는 방법에 대해 설명합니다. CoreOS에서는 / usr / 폴더를 변경할 수 없으므로 표준 / usr / local / bin 경로를 사용할 수 없습니다.
다른 시스템을 사용하십니까? 소개 Rancher는 컨테이너를 실행하고 개인 컨테이너 서비스를 구축하기위한 오픈 소스 플랫폼입니다. 목장주 기지
다른 시스템을 사용하십니까? Docker는 가상 컨테이너 내에 소프트웨어를 배포 할 수있는 응용 프로그램입니다. Go 프로그램에서 작성되었습니다.
다른 시스템을 사용하십니까? Docker Swarm은 개별 서버를 컴퓨터 클러스터로 전환하여 확장 및 고 가용성을 용이하게합니다.
다른 시스템을 사용하십니까? Docker Swarm은 개별 서버를 컴퓨터 클러스터로 전환합니다. 스케일링, 고 가용성
이 튜토리얼은 Docker 시작의 기본 사항을 설명합니다. Docker가 이미 설치되어 있다고 가정합니다. 이 튜토리얼의 단계는
웹 응용 프로그램을 실행할 때 일반적으로 멀티 스레딩을 사용하도록 소프트웨어를 변환하지 않고도 리소스를 최대한 활용하려고합니다.
우리는 여러 시스템에서 애플리케이션 컨테이너를 생성, 관리 및 배포 할 수있는 플랫폼 인 Docker를 알고 있습니다. Docker Inc.는 서비스를 제공합니다
전제 조건 Docker 엔진 1.8 이상. 최소 4GB의 디스크 공간. 최소 4GB의 RAM. 1 단계. Docker 설치 SQL-Server를 설치하려면 Docker mus
NTLite를 사용하여 Vultr 시스템과 호환되는 Windows 사용자 지정 ISO를 만드는 방법을 단계별로 설명합니다. 최신 드라이버와 업데이트 통합을 포함한 완벽 가이드.
Vultr BGP 설정을 위한 단계별 튜토리얼. ASN 할당부터 IP 라우팅 구성, BIRD 데몬 설정, FreeBSD 특이사항 및 실전 문제 해결 팁 7가지 포함한 최종 가이드
WebDAV (Web Distributed Authoring and Versioning)를 이용한 원격 파일 작성을 위한 프레임워크로, WsgiDAV 설치 및 구성 방법을 안내합니다.
Mailcow는 DoveCot, Postfix 및 기타 여러 오픈 소스 패키지를 기반으로 하는 경량 메일 서버입니다. 데비안에서 Mailcow 설치 방법을 안내합니다.
랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.
오픈 소스이자 무료 운영 체제인 ReactOS가 최신 버전과 함께 제공됩니다. 현대 Windows 사용자의 요구 사항을 충족하고 Microsoft를 무너뜨릴 수 있습니까? 이 구식이지만 더 새로운 OS 환경에 대해 자세히 알아보겠습니다.
Whatsapp은 마침내 Mac 및 Windows 사용자용 데스크톱 앱을 출시했습니다. 이제 Windows 또는 Mac에서 Whatsapp에 쉽게 액세스할 수 있습니다. Windows 8 이상 및 Mac OS 10.9 이상에서 사용 가능
인공 지능이 소규모 회사에서 어떻게 인기를 얻고 있으며 어떻게 인공 지능이 성장할 가능성을 높이고 경쟁자가 우위를 점할 수 있는지 알아보려면 이 기사를 읽으십시오.
최근 Apple은 문제를 해결하기 위해 macOS Catalina 10.15.4 추가 업데이트를 출시했지만 이 업데이트로 인해 Mac 컴퓨터의 브릭킹으로 이어지는 더 많은 문제가 발생하는 것 같습니다. 자세히 알아보려면 이 기사를 읽어보세요.
빅데이터의 13가지 상용 데이터 추출 도구