docker_intro
Docker Redis Introduction
Docker-compose >> |
---|
Docker Redis 시작하기
Docker 설치하기 (CentOS)
Docker 시작하기
Docker 버전 확인하기
레디스 최신 이미지 가져오기
버전 지정해서 레디스 이미지 가져오기
레디스 이미지 확인하기
레디스 서버 실행하기
-d: 백그라운드(background)로 실행하기
Docker의 redis-cli로 접속하기
Redis-cli로 직접 접속하기: 연결된 6379 포트를 사용한다.
Docker 리눅스 Shell에 접속하기
도커용 redis.conf
/root/docker/redis-5.0.3/6001/redis.conf 파일을 만든다.redis.conf 예
- daemonize yes로 하면 구동되지 않는다.
- protected-mode no로 설정하고, bind는 주석(comment)처리한다.
- Working dir를 지정한다. "/data" 도커 이미지 안에 디렉토리를 지정한다.
- cluster-announce-ip, port를 지정한다. cluster-announce-ip를 지정하지 않으면 Cluster nodes로 조회했을 때 다른 IP가 나올 수 있다.
redis.conf 파일 지정해서 실행: volume 지정
Docker 명령어
- docker version: 도커 버전 보기
- netstat -tnlp: 포트, 프로세스 확인
- Uninstall old versions: 이전 버전 제거
- docker info: 도커 정보 보기
- docker run: 컨테이너 실행하기
docker run [OPTIONS] IMAGE [COMMAND] [ARG...] - docker ps: 컨테이너 보기
docker ps [OPTIONS]
notwork_mode: host를 사용해서 PORTS는 나오지 않았습니다. - -a, --all: 컨테이너 모두 보기: 멈춘 컨테이너도 보여줍니다.
- -q, --quiet: 컨테이너 ID만 표시합니다.
이런 용도로 사용합니다. docker stop $(docker ps -q) - -l, --latest: 가장 최근에 생성된 컨테이너를 보여줍니다.
- -n, --last: 최근에 생성된 컨테이너를 n개를 보여줍니다.
- -s, --size: 컨테이너 크기도 보여줍니다.
- -f, --filter: 컨테이너를 필터링해서 보여줍니다.
Label은 docker-compose.yml 파일에서 지정합니다. - --format: 항목을 지정해서 보여줍니다.
docker ps -a --format "{{.Names}}: {{.Image}} {{.Networks}} Status={{.Status}}"| sort - docker logs: 컨테이너 로그를 보여줍니다.
docker logs [OPTIONS] CONTAINER - docker logs redis6001
- docker logs -f redis6001 -> tail -f 같은 기능
- docker logs -t redis6001 -> timestamp 보여주기
- journalctl -f -u docker.service -> CentOS에서 사용 가능합니다.
- docker inspect: 컨테이너와 이미지 세부 내용을 보여줍니다.
docker inspect [OPTIONS] NAME|ID [NAME|ID...] - docker top: 컨테이너 프로세스 정보를 보여줍니다.
docker top CONTAINER - docker kill: 컨테이너를 죽입니다.
docker kill [OPTIONS] CONTAINER [CONTAINER...] - docker cp: 컨테이너 안에 있는 파일을 Host OS의 파일시스템으로 복사하거나,
Host OS의 파일을 컨테이너 파일시스템으로 복사합니다.
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH - docker port: 매핑된 포트 정보를 보여줍니다.
docker port CONTAINER [PRIVATE_PORT[/PROTO]]
network_node=host 일 경우 조회되지 않습니다. - docker restart: 컨테이너를 재시작합니다.
docker restart [OPTIONS] CONTAINER [CONTAINER...] - docker stop: 컨테이너를 종료합니다.
docker stop [OPTIONS] CONTAINER [CONTAINER...] - docker start: 컨테이너를 시작합니다.
docker start [OPTIONS] CONTAINER [CONTAINER...] - docker stats: 컨테이너 상태(사용량)을 계속 업데이트하면서 봅니다.
리눅스 top 명령처럼.
docker stats [OPTIONS] [CONTAINER...]
docker stats: 이 경우 ID가 표시되므로 어느 컨테이너인지 확인하기 어렵다.
docker stats redis6001 redis6002: 컨테이너 이름을 지정한다.
docker stats $(docker ps -a --format "{{.Names}}" | sort): 컨테이너 이름을 추출하고 소트해서 제공한다.
- docker rename: 컨테이너 이름을 바꿉니다.
docker rename CONTAINER NEW_NAME - docker pause: 컨테이너를 일시 멈춤(suspend/freeze)니다.
이것은 cgroups freezer를 활용한다.
일시 멈춤되면 프로세스 상태와 내용은 보존되지만 CPU 스케줄링을 하지 않는다.
Docker ps로 보면 Status가 Paused로 나오고,
stats로 보면 CPU 사용량이 0.00%이다.
docker pause CONTAINER [CONTAINER...] - docker unpause: 일시 멈춤(suspend/freeze)된 컨테이너를 해제(unsuspend/unfreeze)합니다.
docker unpause CONTAINER [CONTAINER...] - docker rm: 컨테이너를 삭제합니다.
docker rm [OPTIONS] CONTAINER [CONTAINER...]
docker rm $(docker ps -a -q --filter 'exited!=0') - docker save: 이미지를 tar 파일로 만든다.
docker save [OPTIONS] IMAGE [IMAGE...]
docker save -o redis2.tar redisgate/redis:5.0.3 - docker load: tar 파일을 이미지 저장소로 불러들인다.
docker load [OPTIONS]
docker load -i redis2.tar
기타 필요한 명령
- 컨테이너 쉘에 접속하기
docker exec -it redis6001 /bin/bash - 포트 확인
netstat -tnlp
lsof -i -nP | grep LISTEN | awk '{print $(NF-1)" "$1}' | sort -u - Network_mode=bridge 일 경우 Port Forwarding 정보 보기
iptables -t nat -L -n - Network_mode=bridge 일 경우 Port Forwarding 설정
[root]# cat /proc/sys/net/ipv4/ip_forward
0
[root]# sysctl -w net.ipv4.ip_forward=1 설정
net.ipv4.ip_forward = 1
[root]# cat /proc/sys/net/ipv4/ip_forward 확인
1
0
[root]# sysctl -w net.ipv4.ip_forward=1 설정
net.ipv4.ip_forward = 1
[root]# cat /proc/sys/net/ipv4/ip_forward 확인
1
리부팅 후에도 변경한 값이 적용될 수 있도록 sysctl.conf 파일을 수정한다.
[root]# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.ip_forward = 1
firewall-cmd로 각 포트별로 포워딩 할 필요는 없다.
Docker-compose >> |
---|
Email
답글이 올라오면 이메일로 알려드리겠습니다.