도커 스웜 상태 보기
docker info | grep Swarm
클러스터 관리
도커 스웜 매니저 노드 시작
docker swarm init --advertise-addr 192.168.0.100
도커 스웜 워커가 클러스터에 참여
docker swarm join --token SWMTKN-1-sdlfhsalkghsalghlsahglksahglsakg... 192.168.0.100:2377
도커 스웜 클러스터 확인
docker node ls
새로운 매니저 추가를 위한 토큰 생성
docker swarm join-token manager
워커 노드에서 참여 더이상 하지 않고 노드 삭제
docker swarm leave
매니저 노드의 참여 삭제
docker swarm leave --force
워커 노드를 매니저 노드로 변경. 매니저 노드에서
docker node promote swarm-worker1
매니저 노드를 워커 노드로 변경.
docker node demote swarm-worker1
서비스
서비스 생성
docker service create \
ubuntu:14.04 \
/bin/sh -c "while true; do echo hello world; sleep 1; done"
서비스 목록 확인
docker service ls
서비스 정보 확인
docker service ps [service name]
서비스 삭제
docker service rm [service name]
secret / config
secret 생성
echo 1q2w3e4r | docker secret create my_mysql_password -
secret 사용 (기본 값은 테이너 내부의 /run/secrets/ 디렉토리에 마운트됨)
docker service create \
--name mysql \
--replicas 1 \
--secret source=my_mysql_password,target=mysql_root_password \
--secret source=my_mysql_password,target=/home/mysql_root_password \
-e MYSQL_ROOT_PASSWORD_FILE="/run/secrets/mysql_root_password" \
...
mysql:5.7
config 생성
docker config create registry-config config.yml
config 목록 확인
docker config ls
config 내용 확인
docker config inspect registry-config
config로 입력된 값 확인. config 내용 확인에서 “Spec” / “Data” 내에 dmVyc21vbjog… 이 있었다고 하면, 해당 내용은 base64로 encoding 되어 있기 때문에..
echo dmVyc21vbjog... | base64 -d
config 사용
docker service create --name yml_registry -p 5000:5000 \
--config source=registry-config,target=/etc/docker/registry/config.yml \
registry:2.6
변경은 docker service update
의 --config-rm
, --config-add
, --secret-rm
, --secret-add
로 삭제, 추가 가능.
도커 스웜 네트워크
네트워크 목록 확인
docker network ls
오버레이 네트워크 생성
docker network create \
--subnet 10.0.9.0/24 \
-d overlay \
myoverlay
오버레이 네트워크 사용
docker service create --name overlay_service \
--network myoverlay \
--replicas 2 \
dasomoli/book:hostname
docker run –net 으로 지정해서 사용 가능한 오버레이 네트워크 생성
docker network create \
-d overlay \
--attachable \
myoverlay2