컨테이너 조회

<실행 중인 컨테이너 조회>

$ docker ps
  • - ps : process status

 

< 모든 컨테이너 조회 >

$ docker ps -a
  • -a : all

컨테이너 중지

$ docker stop 컨테이너 이름(혹은 컨테이너 ID) # 정상적으로 중지
$ docker kill 컨테이너 이름(혹은 컨테이너 ID) # 강제 중지

 

컨테이너 삭제

< 중지되어 있는 특정 컨테이너>

$ docker rm 컨테이너 이름(컨테이너 ID)
  • rm : remove

< 실행되고 있는 특정 컨테이너>

$ docker rm -f 컨테이너 이름(컨테이너 ID)
  • -f : force

<중지되어 있는 모든 컨테이너>

$ docker rm $(docker ps -qa)
  • -q : quite
  • -qa : quite all 
  • $(docker ps -qa) : 실행중인 컨테이너 검색해서 사용하고 있지않은 이미지 전체 삭제

<실행되고 있는 모든 컨테이너>

$ docker rm -f $(docker ps -qa)

 

[출처]

[인프런] 비전공자도 이해할 수 있는 Docker 입문/실전

컨테이너 생성 (create )

- 다운 받은 이미지를 이용하여 컨테이너 생성

# docker create 이미지명[:태그명]
$ docker create nginx

$ docker ps -a # 모든 컨테이너 조회

 

컨테이너 실행 ( start )

 - 정지되어 있는 컨테이너를 실행

# docker start 컨테이너명 ( 컨테이너 ID)
$ docker start 컨테이너명

$ docker ps # 실행 중인 컨테이너 조회

# Nginx 컨테이너 중단 후 삭제하기
$ docker ps
$ docker stop {nginx를 실행시킨 Container ID(docker ps 에서 출력된 ID)} # 컨테이너 중단
$ docker rm {nginx를 실행시킨 Container ID}
$ docker image rm nginx # Nginx 이미지 삭제

 

컨테이너 생성 + 실행  ( run )

- 다운받은 이미지 바탕으로 컨테이너 생성 -> 컨테이너 실행

# docker run 이미지명[:태그명]
$ docker run nginx # 포그라운드에서 실행 (추가적인 명령어 조작을 할 수가 없음)

# Ctrl + C로 종료할 수 있음

 

백그라운드에서 컨테이너 실행시키기

 - 백그라운드 와 포그라운드

  • 백그라운드 : 내가 실행시킨 프로그램이 컴퓨터 내부적으로 실행되는 상태 -> 다른 프로그램 조작 가능
  • 포그라운드 : 내가 실행시킨 프로그램의 내용이 화면에서 실행되고 출력되는 상태 -> 다른 프로그램 조작 불가능
$ docker run -d nginx # -d 를 이용하여 백그라운드에서 실행

 

 

호스트의 포트와 컨테이너의 포트를 연결하기

# docker run -d -p [호스트 포트]:[컨테이너 포트] 이미지명[:태그명]
$ docker run -d -p 4000:80 nginx

 

       유저  <-(4000번 포트)-> 호스트 컴퓨터 <-(80번 포트)-> 컨테이너(Nginx)

 

[출처]

[인프런] 비전공자도 이해할 수 있는 Docker 입문/실전

이미지 다운로드

이미지는 DockerHub 라는 곳에 저장 되어있는 이미지를 다운받는다.

 

(예시) Nginx

 

Nginx 최신버전 다운로드

$ docker pull nginx  # docker pull nginx:lastest 와 동일

 

Nginx 특정버전 다운로드

$ docker pull nginx:태그

 

태그 정보는 https://hub.docker.com/_/nginx 에서 확인 가능

 

다운받은 모든 이미지 조회

$ docker image ls

  • REPOSITORY : 다운받은 이미지 이름
  • TAG : 이미지를 다운로드 했을 때의 태그 이름
  • CREATED :  이미지를 다운받은 날짜가 아니라 이미지가 생성된 날짜

이미지 삭제

이미지 지명 삭제

$ docker image rm [이미지 ID 또는 이미지명]

 

중지된 컨테이너에서 사용하고 있는 이미지 강제 삭제하기

$ docker image rm -f [이미지 ID 또는 이미지명]

    - 실행 중인 이미지는 삭제 불가능

 

전체 이미지 삭제

# 컨테이너에서 사용하고 있지 않은 이미지만 전체 삭제
$ docker image rm $(docker images -q)

# 컨테이너에서 사용하고 있는 이미지를 포함해서 전체 이미지 삭제
$ docker image rm -f $(docker images -q)

 

[출처]

[인프런] 비전공자도 이해할 수 있는 Docker 입문/실전

 

Nginx?

 

 1. Nginx 이미지 다운로드

-  다운로드 방법 

# docker pull 이미지명

# docker pull 이미지명:태그명

  - 태그명은  https://hub.docker.com/_/nginx 에 있는 것을 참고하면 된다.

 

$ docker pull nginx

   - https://hub.docker.com/_/nginx

 

nginx - Official Image | Docker Hub

Quick reference Supported tags and respective Dockerfile links 1.27.1, mainline, 1, 1.27, latest, 1.27.1-bookworm, mainline-bookworm, 1-bookworm, 1.27-bookworm, bookworm⁠1.27.1-perl, mainline-perl, 1-perl, 1.27-perl, perl, 1.27.1-bookworm-perl, mainline-

hub.docker.com

        - 이미지 다운로드 방법

              # docker pull 이미지명:태그명

2.  다운 받은 Nginx 이미지 확인

$ docker image ls

 

3. 이미지컨테이너에 올려 Nginx 서버 실행시키기

$ docker run --name webserver -d -p 80:80 nginx

 

 

4. 실행되었는지 확인

>> localhost:80 로 접속

                                       위 와 같이 표시가 되면 실행 성공

 

5. 실행 중인 컨테이너 확인

$ docker ps

 

 

6. 특정 컨테이너 정지

$ docker stop webserver

 

[출처]

[인프런] 비전공자도 이해할 수 있는 Docker 입문/실전

Docker?

컨테이너를 사용하여 각각의 프로그램을 분리된 환경에서 실행 및 관리할 수 있는

 

Container?

독립적인 컴퓨터 환경을 구성하여 해당 환경에 프로그램을 별도로 설치 할 수 있도록 하는 미니 컴퓨터

 

윈도우 환경에서 하나의 컴퓨터에 여러 사용자로 나누어서 사용할 수 있게 구성되어 있는데

여기서 한명의 사용자를 위해 구성된 환경이 컨테이너와 비슷한 개념으로 볼 수 있겠다.

 

Image ?

프로그램을 실행하는데 필요한 모든 것을 담고 있는 파일

- 설치 과정, 설정, 버전 정보 등을 포함

 

[출처]

[인프런] 비전공자도 이해할 수 있는 Docker 입문/실전

+ Recent posts