Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

클라우드 엔지니어 꿈나무

Docker 설치 및 기본 명령어 - CentOS 본문

container

Docker 설치 및 기본 명령어 - CentOS

새싹싹이 2023. 9. 6. 20:42

Docker 

컨테이너 기반의 오픈소스 가상화 플랫폼

경량 : 하나의 host에 여러 개의 컨테이너를 서로 영향을 미치지 않은 채 독립적으로 실행 가능

고속: 1초 이내 새로운 컨테이너 생성

참고

https://www.docker.com/

https://hub.docker.com

 

컨테이너

이미지를 실행한 상태

격리된 공간에서 프로세스 동작

기존 방식은 용량이 큰 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 => 도커 오류 확인