도커 이미지와 실행

악음·2022년 3월 6일
0

docker 기본

목록 보기
2/8
post-thumbnail

도커이미지?

도커에서 서비스 운영에 필요한 서버 프로그램, 소스코드 및 라이브러리, 컴파일된 실행 파일을 묶는 형태를 Docker Image라고한다.

그리고 그 이미지들은 docker hub라는 곳에서 pull하여 container으로 실행시킨다
이 이미지들은 여러 container에 담아서 실행 될 수있다.

images 관련 커맨드

docker pull

테스트용으로
httpd
에서 이미지를 pull 해보자

docker pull httpd

위와같이 다운로드 해보자

그리고 docker images 으로 pull한 이미지들을 살펴보자면

repository는 이미지 명
tag 는 버전(latest는 최신)
image ID 는 이미지의 아이디
created 는 만들어진 날로부터 몇일 지났는지알수있다

여기서

리스트에 나와있는 이미지를 실행시키려면

docker run {options} [images name] {command}

다음 커맨드를 처보자
{command} 는 이미지를 실행시키고 나서 cmd에 입력할 커맨드를 입력한다
Ex) /bin/bash, pwd 등등..

docker run httpd


위와같이 무언가 서버가 동작한다는 메새지가 뜬다.

여기서 커맨드에 몇가지 유용한 옵션을 보자면

docker run -d

-d 이미지를 백그라운드에서 실행시켜준다.

서버를 띄운뒤 ctrl+c를 눌렀을경우 서버가 꺼지는 경우를 방지할 수있다.

docker run -d [container id/name]

포그라운드일 경우

백그라운드일 경우

docker exec

docker attach

컨테이너가 백그라운드에서 동작할때 해당 컨테이너의 cmd(back ground)를 현재 cmd으로(fore ground) 가져오는방법

docker attach [container id/name]

docker run -i(-it)

-it/i 는 테이너를 종료하지 않은체로, 터미널의 입력을 계속해서 컨테이너로 전달하기 위해서 사용한다. 때문에 컨테이너로 계속해서 커맨드를 보낼 수 있다.

i인지 it인지 햇갈린다.

docker run -i [container id/name]

docker run --name

실행할 이미지의 이름을 정해준다.

rmi

이미지를 지운다(컨테이너가 떠있지 않은 이미지만 지운다)

docker rmi [image name]

container 관련

docker ps

현재 실행중인 컨테이너 리스트를 보여준다.

docker ps -a

ps에 모든 컨테이너를 노출시킨다.


현제 꺼져있는 컨테이너도(status = exited) 노출된다.

docker restart/start

현제 꺼져있는 컨테이너를 다시 실행

docker start [container name/id]

현재 꺼져있는 컨테이너를

다시 켜지게 한다

docker stop

현재 실행중인 컨테이너를 멈춘다.

docker stop [container id/name]

docker exec

실행중인 컨테이너로 커맨드 요청을 보낼 수 있다.

docker exec [containerId/containername] 커맨드


위에 실행되는 과정을 보자면

이미지를 백그라운드로실행(-d) 그런뒤 ps으로 컨테이너 아이디 확인 그런뒤

 docker exec b1bae952f7a6 ls

그렇게 하면 현제 디렉토리의 ls을 실행하여 리스트를 보여준다.

docker exec -it [container ID/Name] /bin/sh (중요)

컨테이너의 sh을 실행시키고 그곳에서 -it(interactive(STDIN), TTY 지원)


추가로 exit을 입력하면 해당 컨테이너에서 나올수 있다.

logs

현재 실행중인 컨테이너의 로그를 볼 수 있다.

docker logs [container id/name]

로그를 계속 보고싶다면
docker logs [container id/name] -f

rm

컨테이너를 지운다 (컨테이너는 중단상태이여야한다)

docker stop [container name/id]
docker rm [container name/id]
profile
RN/react.js개발자이며 배운것들을 제가 보기위해서 정리하기 때문에 비속어 오타가 있을수있습니다.

0개의 댓글