[Docker] Docker 컨테이너 명령어

김재연·2022년 3월 18일
0

Docker

목록 보기
3/4

도커로 Python 환경 구축하기

Unable to find image 'python:3.7.0b4-stretch locally 라는 메세지에서 알 수 있듯이 로컬에서 파이썬 이미지를 찾지 못했다고 한다. 그랬더니 갑자기 library/python 에서 뭔가 pull을 해왔다. 그러더니 파이썬 실행까지 시켜줌.

docker pull python 으로 먼저 pull을 받아오든지 설치를 하든지 하고 실행을 시켜야되는데 무작정 docker run부터 시켜서 그렇구나


도커로 Ubuntu 환경 구축하기

그럼 이번에는 ubuntu를 pull 받아와보자

아까같은 Unable 어쩌구 메세지는 없다. 대신 default tag로 latest를 쓴다고 한다. 가장 최근거를 받아온다는 뜻인듯. 지정한 버전을 받아오려면 이미지 이름 뒤에 태그를 쓰면 된다. ubuntu 최신 버전을 받아오려면 $ docker pull ubuntu:latest 로 쓰는 식.


Docker 명령어

이미지 목록보기

오 아까 깔았던 python 3.7~ 도 있고 ubuntu latest도 있다. (예전에 돌려본 electricity map도 있다)


컨테이너 실행하기

컨테이너를 실행해본다. ubuntu 이미지를 hello라는 이름의 컨테이너로 생성한 뒤 ubuntu 이미지 안의 bash shell을 실행한다.

$ docker run <옵션> <이미지 이름> <실행할 파일>
$ docker run -i -t --name hello ubuntu /bin/bash

컨테이너 이름 : hello, 이미지 이름 : ubuntu, 실행할 파일 : /bin/bash

docker run을 하고 나서 앞에 프롬프트가 ubuntu의 bash shell ( root@afd9d43f9409:/# ) 로 바뀐 것을 볼 수 있다. ubuntu 명령어 ls 로 테스트 해보고 exit 으로 bash shell을 나오면 컨테이너가 stop된다. 프롬프트가 다시 cmd로 돌아왔다. docker ps 로 컨테이너 목록을 확인하면 아무것도 나오지 않지만 docker ps -a 로 보면 방금 종료된 ubuntu 컨테이너를 확인할 수 있다.


컨테이너 재시작하기

방금 중지한 컨테이너를 다시 시작한다. 아까 name을 hello로 지정한 ubuntu 이미지를 다시 시작하는데 이름을 ubuntu(이미지)가 아니라 hello(컨테이너)로 해야한다. 실행하고 docker ps 로 확인해보면 아깐 안떴는데 지금은 ubuntu 이미지가 뜬 걸 볼 수 있다.

컨테이너를 실행할 때는 ubuntu(IMAGE)가 아니라 hello(NAMES)나 afd9d43f9409(CONTAINER ID)로 해야한다. ubuntu라고 썼을 때는 에러가 났다. 실행할 때는 이미지가 아니라 컨테이너를 실행하는거라 이미지명인 ubuntu는 안되고 컨테이너를 가리키는 hello나 afd9d43f9409만 되는거같다.


컨테이너 종료하기

컨테이너 종료도 마찬가지


컨테이너 접속하기

아까는 $ docker run -i -t --name hello ubuntu /bin/bash 으로 어렵게 bash shell에 들어갔는데 이제는 docker attach hello 로 간단하게 컨테이너에 접속할 수 있다. 마찬가지로 exit으로 bash shell을 나오면 컨테이너가 종료된다.


외부에서 컨테이너 내부 명령 실행하기

이렇게 docker exec로 직접 /bin/bash를 통하지 않고 외부에서 컨테이너 내부 명령을 실행할 수도 있다. 명령어 포맷은 $ docker exec <컨테이너 이름[ID]> <명령> <매개변수> 이다. 이미 실행된 컨테이너에 패키지를 설치하거나 각종 데몬을 실행할 때 활용된다고 한다.


컨테이너 삭제하기

컨테이너는 $ docker rm <컨테이너 이름[ID]> 으로 삭제할 수 있는데, 실행 중인 컨테이너는 삭제할 수 없었다. 중지시키고 삭제하면 $ docker ps -a 에서도 해당 컨테이너 정보를 볼 수 없었다.


이미지 삭제하기

$ docker rmi <이미지 이름>:<태그> 로 이미지를 삭제할 수도 있다.

$ docker rmi 레포지토리명:태그
레포지토리명 꼭 써야함! 안쓰면 오류


이미지 하나로 컨테이너 여러개 만들기

이미지 하나(ubuntu)로 컨테이너를 여러개(hello, hello2) 만들 수 있다.

$ docker run -i -t --name hello ubuntu /bin/bash
$ docker run -i -t --name hello2 ubuntu /bin/bash


Reference

[Docker] 도커 간단 실습하기 1. 도커 사용하기: 기본 명령어 정리 / Windows 10 Home / Docker Compose

profile
일기장같은 공부기록📝

0개의 댓글