yuns

[Docker] 도커 이미지 및 컨테이너 실행 본문

Docker 공부

[Docker] 도커 이미지 및 컨테이너 실행

yuuuun 2024. 4. 8. 00:35
반응형

도커 이미지 탐색

docker search centos

  • official에 [ok]라 적혀있는 맨 위의 centos가 Docker사에서 제공하는 공식 repository를 의미
  • [Docker Hub ID]/[Repository Name]형태로 제공
  • 원래는 docker.io/eclipse/centos_jdk8 와 같은 형식으로, docker.io가 추가되어 있었는데 생략 가능한 것으로 보임

컨테이너 이미지 획득

docker pull [image name]:[tag name]

 

  • tag name은 여러 같은 이름의 이미지를 사용하고 싶을 때, 구분을 위해 tag를 진행하는 것으로 추론된다.

centos를 예로 들고 있기 때문에 centos를 아래와 같이 작성한다.

docker pull centos:centos7

그러면 아래와 같은 결과가 나온다

REPOSITORY            TAG       IMAGE ID       CREATED        SIZE
centos                centos7   c9a1fdca3387   2 years ago    301MB

컨테이너 가동

docker run [option] [image name] [command]
  • 이렇게 보니까 어떻게 터미널을 작성하라는 것인지 모르겠다.
  • 아래 예를 들어보겠다.
docker run -td --name centos7 centos:centos7
  • 명령어 설명
    • -t 옵션: 컨테이너에 pseudo-tty를 할당한다고 한다..
    • -d옵션: 컨테이너를 백그라운드에서 실행하는 것을 의미
    • --name centos7: 가동하는 컨테이너에 이름을 부여하는 것
    • centos:centos7: 이미지 이름
  • 실행할 경우, 64개 문자로 된 random 형식의 문자열 출력

컨테이너 가동 상황 확인

docker ps [option]
CONTAINER ID   IMAGE            COMMAND       CREATED              STATUS              PORTS     NAMES
d58183ca8144   centos:centos7   "/bin/bash"   About a minute ago   Up About a minute             centos7

컨테이너에 연결

  • ssh 명령어를 통해 접근 불가능
  • docker exec 명령어를 통해 접근 가능 
docker exec [option] [container name] [command]

기본 형태가 위의 형태인데 구체적인 예시를 들어보자

docker exec centos7 cat /etc/redhat-release
  • centos7의 container에서 "cat /etc/redhat-release"라는 커멘드를 날리겠다.
  • 결과: CentOS Linux release 7.9.2009 (AltArch)

컨테이너에서 bash를 실행하고 싶다면?

docker exec -it centos7 /bin/bash
  • 위의 명령어를 쓰게 될경우, "[root@d58183ca8144 /]#" 라는 bash로 들어가진다.
  • 해당 라인에 cat/etc/redhat-release라 명령어를 칠 경우, 위에서 나온 "CentOS Linux release 7.9.2009 (AltArch)"가 터미널에서 프린트 되는 것을 확인할 수 있을 것이다.

bash 나가기

exit

컨테이너에서 정지

docker stop [container name]

컨테이너 가동

  • 정지 상태의 컨테이너를 다시 시작하려면 앞에서 실행한 명령어인 docker run 이 아닌 docker start를 사용해야 한다.
docker start [container name]

컨테이너 삭제

docker rm [option] [container name]
docker rm -f centos7

위의 명령어를 치고 "docker ps -a" 의 명령어를 치면 아무런 container도 없다는 것을 확인 할 수 있다.

 

 

참조

IT 운용 체제 변화를 위한 데브옵스

반응형
Comments