[Docker] play with docker 실습

Na young·2024년 1월 23일
0

Docker

목록 보기
3/8

도커 이미지 (Docker Image)

도커 컨테이너를 생성하기 위한 바이너리 파일


도커 컨테이너

도커 컨테이너란 도커 이미지를 통해 실행되는 하나의 프로세스

  • 원본 저장소에 있는 Docker File로부터 Docker Image를 내려받고 해당 이미지를 실행하여 여러 개의 컨테이너가 실행되는 구조
  • 도커 이미지와 도커 컨테이너는 1:N 구조
  • 도커 이미지는 읽기 전용으로, 도커 컨테이너에서 수정이 일어나도 원본 이미지에는 영향 X
  • OS 상에서 프로그램과 프로세스 관계와 비슷

도커 이미지 이름 구성

  • 저장소 이름 (Repository name)
  • 이미지 이름 (Image name)
  • 이미지 태그 (Image tag) -버전 정보나 릴리즈 태그 정보

ex.

  1. OracleRepo/mysql-sever:8.0.13
    : OracleRepo 저장소에 mysql-server이미지 8.0.13 버전

  2. OracleRepo/mysql-server
    : 태그 생략 시 가장 최근 릴리즈 사용

  3. mysql-server:5.1.12
    : 저장소 생략 시 기본 저장소인 도커 허브로 인식

  4. mysql-server
    : 태그와 저장소 생략 시 기본 저장소와 최근 릴리즈 사용


play with docker

1. 도커 이미지 받아오기

$ docker pull 이미지명orDockerHub의레포명:버전-기타옵션

2. 도커 컨테이너 실행

(1) 도커 컨테이너 생성 및 시작을 한번에 하기
$ docker run [image]

(2) 도커 컨테이너 생성과 시작을 따로 하기
$ docker create [image]
$ docker start [container]

만약, image가 없다면 repo에서 자동으로 pull을 한다


도커 명령어

3. 도커 컨테이너에 도커 이미지 할당

$ docker pull nginx:1.23.1-alpine

1.23.1 버전이고 alpine 옵션이 적용된 nginx 이미지를 받아와라

$ docker images


$ docker run -d -p 8001:80 --name=webserver1 nginx:1.23.1-alpine

-d : detach 모드. 해당 컨테이너가 백그라운드에서 돌아간다
-p : 포트 바인딩. 8001은 host의 포트이며, 접속 시 컨테이너의 80번 포트와 연결된다
--name=컨테이너이름 : 식별할 수 있는 이름 지정

  • 위의 방법으로 도커 컨테이너 생성, 포트 바인딩, 도커 이미지 할당 가능

4. 조회하기

$ docker ps


5. 접속하기

(1) 링크를 통해 접속하기

(2) curl로 접속하기 (localhost:8001)


6. 컨테이너 정지

$ docker stop [NAMES]

  • 정지해둔 것일 뿐 완전히 제거된 상태가 아니다.
  • 정지 상태 컨테이너를 보기 위해서는 $ docker ps -a

7. 컨테이너 삭제

$ docker rm [NAME]


profile
개발어린이

0개의 댓글