공부/docker

도커 교과서 ch01~02 (도커 설치 및 기본명령어)

KidAnt 2023. 12. 18. 10:12

도커 설치

#받기
root@DESKTOP-KU8L7UV:/home/user# sudo apt-get install \
> apt-transport-https \
> ca-certificates \
> curl \
> gnupg-agent \
> software-properties-common

#인증키 받기
root@DESKTOP-KU8L7UV:/home/user# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
OK

#키확인
root@DESKTOP-KU8L7UV:/home/user# sudo apt-key fingerprint 0EBFCD88
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

#저장소 추가
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

sudo apt-get update

#도커 패키지 설치

sudo apt-get install -y docker-ce docker-ce-cli containerd.io

sudo apt-get install docker-compose

도커 설치 버전 확인

docker version

docker-compose version

실습환경 초기화 명령

docker container rm -f $(docker container ls -aq)

이미지 차지 디스크 용량 회수 명령

docker image rm -f $(docker image ls -f reference='diamol/*' -q)

docker container run (도커 애플리케이션 패키지/이미지)
# 컨테이너 실행

pull -> 이미지를 내려받는 것

My name is: #컴퓨터 이름
ab8f92b0beec
---------------------
Im running on: #운영체제 종류
Linux 5.15.133.1-microsoft-standard-WSL2 x86_64
---------------------
My address is: #네트워크 주소
inet addr:172.17.0.2 Bcast:172.17.255.255 Mask:255.255.0.0

 

  • 컨테이너의 특징: 밀집과 격리 동시가능 
    • 가상머신과는 다르게 운영체제를 공유하기 때문에 많은 리소스가 경감되고 실행도 빠르고 많은 수의 어플리케이션 가능
docker container run --interactive --tty diamol/base

#--interactive: 컨테이너 실행 후 바로 접속

#--tty: 터미널 세션을 통해 컨테이너 조작

 

컨테이너 기본 명령어

docker container ls
#현재 실행중인 모든 컨테이너에 대한 정보 출력 (컨테이너 IDM, 바탕 이미지, 컨테이너 실행후 도커가 실행한 명령 등)
# --all 시 상태 상관없이 모두 출력

docker container top (컨테이너 id)
# 실행중인 컨테이너 목록 출력

docker container logs (컨테이너 id)
#컨테이너가 최근 실행한 로그 출력

docker container inspect (컨테이너 id)
#컨테이너 정보 출력

모든 컨테이너는 똑같은 방법으로 관리 가능 -> 모든 컨테이너는 도커를 통해 올려진 관리계층으로 관리


docker container run --detach --publish 8088:80 diamol/ch02-hello-diamol-web

# --datach: 컨테이너를 백그라운드에서 실행하며 컨테이너 ID출력
# --publish: 컨터이너의 포트를 호스트 컴퓨터에 공개 

docker container stats [컨테이너 ID]

#실행중인 컨테이너 실시간으로 체크(cpu,메모리, 네트워크, 디스크 사용량 등)



연습문제

$ docker cp CONTAINER:FILEPATH LOCALFILEPATH #컨테이너 안에 파일을 특정한 디렉토리에 빼오는 명령어
$ vi LOCALFILEPATH #특정 파일 확인
$ docker cp LOCALFILEPATH CONTAINER:FILEPATH #빼온 특정 파일을 다시 안에 넣는 명령어

#해당 명령어는 실행중인 컨테이너의 내용파일을 교체하는 명령어
#CONTAINER: 해당 컨테이너 ID
#FILEPATH: 도커 컨테이너 안에 있는 설정 파일
#LOCALFILEPATH: 사용자 컴퓨터 경로 및 파일