본문 바로가기

MSA

도커 II

도커 명령어

  • sudo adduser 계정명 : docker 계정 만들기
  • su 계정명 : 로그인 하기
  • sudo docker ps : 실행 중인 컨테이너 정보
  • sudo docker ps -a : 실행 중인 컨테이너 + 종료한 컨테이너 정보
  • docker stop <컨테이너 이름> 
  • docker ps -a -q : 삭제한 도커 보기
  • docker rm $(docker ps -a -q) : 컨테이너 id 값들을 환경변수에 담아 삭제 요청 -> 일괄 삭제
  • sudo usermod -aG docker $USER : 로그인 계정을 docker라는 그룹에 추가, 이 후  docker ps 명령어 사용시 sudo 명령어 없이 사용 가능 (현재 실행 중인 컨테이너 삭제 불가, 중단하고 삭제)

환경 변수는 앞에 $를 붙임

 

// 로그인 안했을때
hj@DESKTOP-MFJ12TO:~$ sudo docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
// 로그인 한 후
encore@DESKTOP-MFJ12TO:/home/hj$ sudo docker ps
[sudo] password for encore:
encore is not in the sudoers file.  This incident will be reported.

 

웹 서버 실행

docker run -it --name mywebserver -p 80:80 ubuntu:14.04

apt -get update

apt-get install apache2 -y (데몬 등록)

service apache2 start

-> 127.0.0.1

 

ssh 서버 만들기

1. docker run -it --name myserver -p 10000:22 ubuntu:14.04
: ssh의 기본포트인 22를 컨테이너 내에서 10000번 포트와 매칭

-> 밖에서 접속시에는 10000으로접속, 도커가 도킹을해줌 -p 옵션을통해
2. apt-get install openssh-server
3. service ssh start (데몬 등록)
4. 다른 'wsl' 탭(powershell)이나 ubuntu를 키고

ssh encore@127.0.0.1 -p 10000

으로 외부에서 접속

 

도커 컨테이너

  • 이미지로 컨테이너를 생성하면 해당 이미지의 목적에 맞는 파일이 들어있는 파일 시스템과 격리된 시스템 자원 및 네트워크를 사용할 수 있는 독립된 공간이 생성. 이것이 바로 '도커 컨테이너'. 이때 이미지는 불변.
  • 웹서버 도커 이미지로부터 여러 컨테이너를 생성하면 생성된 컨테이너의 개수만큼 웹 서비스가 생성. 해당 컨테이너들은 외부에 웹 서비스를 제공하는데 사용.
  • 컨테이너는 이미지를 읽기 전용으로 사용, 이미지에 변경된 사항만 컨테이너 계층에 저장.
  • 컨테이너에서 무엇을 하던 원래 이미지는 영향 받지 않음.
  • 생성된 컨테이너는 각각 독립된 파일 시스템을 제공, 호스트와 분리되어 있으므로 특정 컨테이너에서 어떤 어플리케이션을 설치하거나 삭제해도 다른 컨테이너와 호스트는 변화가 없음.

이미지

레이어 구조. 같은 레이어일 경우 다운로드 받지 않고 공유를 함으로써 용량에 효율적

 

이미지 다운로드 받기

  • docker pull nginx
  • docker pull nginx:stable
  • docker history nginx:stable

 

도커 컨테이너 생성

  • docker run -it (inter active) ubuntu:14.04 : 도커 컨테이너 생성
  • exit / ctrl + D : 완전 종료
    ctrl + P,Q : 종료시키지 않고 빠져만 나오기

cf)

docker run -it --name mycentos centos:7 : centos:7 로 컨테이너 생성, 이름 지정

이름을 주면 docker stop 같은 명령어를 name을 통해 사용가능하다

 

it 키워드를 쓰면 컨테이너 내부로 들어가게 된다.
하지만 도커를 백그라운드에서 돌리는 케이스가 많기 때문에 해당 키워드를 안쓰는 경우도 많다.
일반적으로 컨테이너 내부는 root를 준다. 망가져도 컨테이너를 내렸다가 올리면 되기 때문.

 

os 버전 확인
cat /etc/issue

'MSA' 카테고리의 다른 글

도커 VI - Dockerfile 명령어  (0) 2023.10.13
도커 V  (0) 2023.10.11
도커 III - git 리포지토리 생성  (0) 2023.10.10
도커 IV  (0) 2023.10.10
도커 I  (0) 2023.10.01