클라우드 엔지니어 꿈나무
Docker 설치 및 기본 명령어 - CentOS 본문
Docker
컨테이너 기반의 오픈소스 가상화 플랫폼
경량 : 하나의 host에 여러 개의 컨테이너를 서로 영향을 미치지 않은 채 독립적으로 실행 가능
고속: 1초 이내 새로운 컨테이너 생성
참고
컨테이너
이미지를 실행한 상태
격리된 공간에서 프로세스 동작
기존 방식은 용량이 큰 OS 가상화, 컨테이너는 단순히 프로세스를 격리시키기 때문에 가볍고 빠름
이미지
컨테이너 실행에 필요한 파일과 설정 값 등을 포함
단일 이미지로 다수의 컨테이너 생성 가능
컨테이너 상태 변경 및 삭제 시에도 불변
컨테이너 실행을 위한 모든 정보를 보유하고 있으므로 설치 및 컴파일 불필요
대표적인 이미지 : Ubuntu, CentOS
a1, h1, c1 생성한 컨테이너 및 이미지 이름
Docker 설치 (CentOS7 에서 실행)
yum install -y yum-utils (yum-config-manager 설치를 위해 깔아줌)
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containered-io (community edition)
systemctl enable --now docker (도커 실행)
docker login (도커 로그인)
Docker 검색
docker search
docker search -f stars= 1000 nginx (-f 필터 별 1000개 이상의 nginx 검색)
docker search -f is-official=true nginx (official 인 nginx 검색)
docker search --format "{{.Name}}:{{.StarCount}}" nignx (nginx 검색시, 이름과 별 수 표시)
docker search --limit=1 --no trunc -f stars=1 -nginx ( 별 한 개 이상의 nginx 검색 시 한 개만 표기 및 이름 전체 표시)
Docker 다운로드
docker pull
docker pull nginx
docker pull httpd
(pull로 다운받지 못하는 경우 wget 으로 다운로드 가능)
Docker 상태 확인
docker images (다운받은 도커 이미지 확인)
docker inspect httpd:latest (cmd 창으로 최신 버전의 httpd 확인, 컨테이너 이미지 확인)
md5sum /etc/services (services 의 MD5 해시 계산)
docker ps (도커 내 컨테이너 상태 확인)
docker ps -a (종료된 컨테이너까지 상태 확인)
docker top a1 (a1 컨테이너에서는 어떤 것들이 동작 중인지 확인)
docker logs webserver (webserver 가 만들어낸 log 정보들 확인)
Docker 내 삭제
docker rmi nginx (ngix 이미지 삭제)
docker rmi 76e5ad98b58e (이미지 id로도 삭제 가능)
docker rmi hiheey:httpd => repository명칭:tag명칭 으로 삭제5
docker rm h1 (명칭으로도 삭제 가능)
docker rm -f $(docker ps -aq) (상위에 있는 모든 컨테이너 삭제)
=> docker rm -f 의 경우 실행중인 컨테이너 삭제가 가능하다
Docker 컨테이너 실행
docker run itd -p 60080:80 --name h1 httpd:latest (-i : 대화형 / -t : 터미널/ -d : 컨테이너 백그라운드에서 실행, 60080 포트로 접속하면 80포트로 전달, 최신 버전인 httpd 컨테이너를 생성하고 h1라고 명칭)
이름 변경
docker tag httpd:latest hiheey/web:httpd (tag로 httpd 명칭을 hiheeey/web:httpd 로 변경)
웹에서 다운로드 및 업로드
docker push hiheey/web:httpd
docker pull hiheey/web:httpd
컨테이너 생성
docker create --name a1 alpine (alpine 이미지를 사용해서 a1 컨테이너 생성)
컨테이너 실행
docker start a1
컨테이너 생성 및 실행 동시 진행
docker run --name a1 alpine
docker run -it --name h1 httpd (shell 로 실행)
docker run -d --name h2 httpd (이미지로 실행)
docker run -itd --name h1 httpd (-itd 동시 기재도 가능하나 이 경우, 생성만 되고 접속은 안)
컨테이너 입장
docker exec -it h1 /bin/bash (쉘 입장, exec로 컨테이너에 들어간 경우, exit 눌러도 컨테이너는 활성화)
docker attach a1
컨테이너 끝내기
docker pause a1 (일시 중지, 자원 해제 안됨)
=> docker unpause a1로 재시작 가능
docker stop a1 (a1 자원 해제 : ip address 제거)
ctrl + q + p (컨테이너에서 나오지만 exit 상태는 되지 않음)
docker restart a3 (컨테이너 종료, 재시작: 자원 해제 후 재배정)
docker commit [container ID] [Image Name] => docker Container를 Image로 저장
docker top c1 (실행 중인 프로세스의 목록을 보여주는 명령어)
docker system info => systemc 정보 확인
docker system df => system 사용률 확인
docker system events => event 확인
docker system purne => system 초기화
docker rename h1 h2 => 컨테이너 이름을 h1에서 h2로 변경
docker logs => 도커 오류 확인
'container' 카테고리의 다른 글
Docker Haproxy를 활용한 LoadBalancer (1) | 2023.10.03 |
---|---|
Docker network - CentOS7 (0) | 2023.10.03 |
Docker hub에 이미지 올리기 - CentOS7 (0) | 2023.10.03 |
Docker Container Loadbalancer + php + wordpress + mysql - Centos7 (0) | 2023.09.10 |
Docker 기본 명령어 및 컨테이너 볼륨 생성 후 haproxy 연결 (0) | 2023.09.07 |