yuns
[Docker] 도커 이미지 및 컨테이너 실행 본문
반응형
도커 이미지 탐색
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 운용 체제 변화를 위한 데브옵스
반응형
'Docker 공부' 카테고리의 다른 글
[Docker] Docker Compose로 환경 전체 공유 (0) | 2024.04.17 |
---|---|
[Docker] 도커 이미지 및 컨테이너 실행2 (0) | 2024.04.10 |
Comments