본문 바로가기

개발일기/Docker

Docker - 자주 사용하는 CLI

728x90
반응형

요번 포스팅에서는 Docker을 현업에서 사용할때

자주 사용하는 CLI을 정리해 보겠습니다.

 

1, 이미지 다운로드

docker pull 다운로드할 이미지명

 

#이미지 다운로드는 docker pull '다운로드할이미지명' 을 입력하면 됩니다 . 예를 들어 nginx를 다운받는다고 한다면

docker pull nginx 이렇게 입력하면 됩니다. 해당 이미지는 https://hub.docker.com/ 여기서 가져와 다운로드 하게 됩니다.

 

2, 이미지 목록 조회

docker image ls

 

#해당 명령어를 통하여 현재 설치된 이미지 목록을 확인할 수 있습니다.

 

 

3, 이미지 삭제

docker image rm 이미지ID

 

#이미지를 삭제 할때는 해당 명령어를 이용하여 삭제 하면됩니다. 하지만 이미지를 삭제할때 이미지ID가 너무 길어 다 적기 힘들때는 해당 이미지 ID 앞3글자 이상만 적어주면 삭제가 가능합니다.

 

 

#만약에 이미 어떠한 컨테이너에 사용되고 있는 이미지를 삭제 하려고 하면, 

이렇게 이미 이미지가 컨테이너에서 사용중이기 때문에 삭제하지 못한다는 에러가 뜹니다.

이럴때는 , 

docker image rm -f 이미지ID

 

위 명령어를 통해 강제로 삭제가 가능합니다.

 

 

참고로 이 명령어는 실행중인 컨테이너에 이미지는 삭제하지 못합니다. 중단된 컨테이너에 이미지만 삭제 가능합니다.

 

또한 , 현재 컨테이너에서 사용하고 있지않은 이미지 전부를 삭제 하려면

docker image rm $(docker images -q)

 

해당 명령어로 삭제가 가능합니다.

 

docker image rm -f $(docker images -q)

 

또한 , 위에 명령어를 이용하여 중단된 컨테이너에 있는 모든 이미지를 삭제 하는것도 가능합니다.

 

4, 컨테이너 생성

#컨테이너 생성은 docker create 명령어로 생성할 수 있습니다.

예를 들어서 nginx이미지 컨테이너를 생성한다고 하면

docker create nginx

 

위 명령어를 이용하여 nginx이미지 컨테이너를 생성할 수 있습니다.(nginx 이미지도 생성됨)

 

#docker ps -a 명령어로 확인해보면 nginx를 이용하여 컨테이너가 정상적으로 생성된것을 확인할 수 있습니다. STATUS를 보면 현재 Created 상태인것을 확인할 수 있습니다. 이상태는 현재 컨테이너만 생성한것이고 아직 실행전 상태입니다.

 

docker start 컨테이너ID

 

#생성된 컨테이너는 해당 명령어를 통하여 실행 시킬 수 있습니다.

 

#해당 컨테이너ID는 전부 적지 않더라도 앞자리 3자리 이상만 입력하면 실행이 가능합니다. STATUS를 보면 처음에 Created에서 변경된걸 확인할 수 있습니다.

 

5, 컨테이너 조회

docker ps
docker ps -a

 

#docker ps는 현재 실행중인 컨테이너 조회 , dockeer ps -a는 모든 컨테이너 조회입니다.

 

6, 컨테이너 생성 , 실행 동시에 하기

docker run 사용할 이미지

#docker create는 컨테이너를 생성하고 따로 실행시켜줬어야 하지만 docker run 명령어는 컨테이너를 생성하고

실행도 시켜주는 명령어입니다. 예를 들어 docker run nginx 라는 명령어를 입력하면 컨테이너 생성과 동시에 만약 nginx 이미지가 없다면 nginx 이미지까지 함께 설치가 되고 이후 컨테이너가 자동으로 실행이 됩니다.

하지만 이렇게 명령어를 입력하게되면 포그라운드 상태가 되어서 다른 명령어를 실행할 수 가 없습니다. 

이를 위해 백그라운드 상태로 실행시켜야 하는데 이때는

docker run -d 이미지 이름

 

이렇게 명령어를 입력해주면 됩니다.

또한 , 

컨테이너에 이름을 부여하여 생성할 수 있습니다.

docker -d --name my-docker nginx

 

위와 같이 명령어를 입력하면 my-docker 라는 이름의 컨테이너가 생성이 됩니다.

 

또한 컨테이너를 생성하면서 포트를 지정할 수 있는데,

docker run -d -p 4000:80 nginx

 

이렇게 명령어를 치게되면 4000번으로 요청 보낸 포트를 80번 포트와 연결해 주겠다 라는 뜻입니다. 

결국 nginx 이미지를 실행한 docker 컨테이너를 80번 포트로 생성하고 접근 할때는 localhost:4000 이런 식으로 접근 하게 되는 것입니다.

 

7, 컨테이너 삭제

 

docker rm 컨테이너ID or 컨테이너Name

 

#컨테이너 삭제는 해당 명령어로 삭제가 가능하며 컨테이너ID로 삭제 할 시 컨테이너ID 3글자 이상만 입력하면 삭제가 가능합니다. 참고로 실행중인 컨테이너는 삭제가 불가능 하므로, 실행중인 컨테이너는 stop 시켜준 후에 삭제 해야합니다.

 

8, 컨테이너 로그 조회

docker logs 컨테이너ID
docker logs --tail 10 컨테이너 ID
docker logs -f 컨테이너 ID
docker logs --tail 0 -f 컨테이너 ID

# 1번째 줄 명령어는 해당 컨테이너에 대하여 저장되어있단 로그를 출력합니다.

# 2번재 줄 명령어는 해당 컨테이너에 대하여 저장되어있는 로그를 10줄만 출력합니다.

# 3번째 줄 명령어는 해당 컨테이너에 대하여 저장되어있는 로그를 출력하고, 실시간 로그를 사용합니다.

# 4번째 줄 명령어는 기존 로그는 출력하지 않고 실시간 로그만 출력합니다.

 

9, 컨테이너 내부 접속

# docker을 사용하다보면 컨테이너 내부로 들어가서 디렉토리 정보나 설치 정보등을 확인해야 할때가 있습니다. 

이럴때 컨테이너 내부로 접속하는 명령어입니다.

 

docker exec -it 컨테이너 ID bash

위 명령어에서 마지막에 bash를 붙여주는 이유는 bash 환경으로 접속한다는 뜻입니다.

 

그리고, 해당 컨테이너에서 나오고싶다면 그냥 exit만 입력해주면 됩니다.

728x90
반응형

'개발일기 > Docker' 카테고리의 다른 글

Docker - SpringBoot 실행  (0) 2024.09.25
Docker - DockerFile을 이용하여 이미지 만들기  (0) 2024.09.24
Docker - MySql 실행  (0) 2024.09.24
Docker - Nginx 설치 (Windows)  (0) 2024.09.20