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
랜섬웨어 공격이 증가하고 있지만 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가지 상용 데이터 추출 도구
우리 컴퓨터는 모든 데이터를 저널링 파일 시스템이라고 하는 체계적인 방식으로 저장합니다. 검색을 누르는 즉시 컴퓨터에서 파일을 검색하고 표시할 수 있는 효율적인 방법입니다.https://wethegeek.com/?p=94116&preview=true
과학이 빠른 속도로 발전하고 우리의 많은 노력을 인수함에 따라 설명할 수 없는 특이점에 처할 위험도 높아집니다. 특이점이 우리에게 무엇을 의미할 수 있는지 읽어보십시오.
26가지 빅 데이터 분석 기법에 대한 통찰: 1부
의료 분야의 AI는 지난 수십 년 동안 큰 도약을 했습니다. 따라서 의료 분야에서 AI의 미래는 여전히 나날이 성장하고 있습니다.