도커에서 서비스 운영에 필요한 서버 프로그램, 소스코드 및 라이브러리, 컴파일된 실행 파일을 묶는 형태를 Docker Image라고한다.
그리고 그 이미지들은 docker hub라는 곳에서 pull하여 container으로 실행시킨다
이 이미지들은 여러 container에 담아서 실행 될 수있다.
테스트용으로
httpd
에서 이미지를 pull 해보자
docker pull httpd
위와같이 다운로드 해보자
그리고 docker images 으로 pull한 이미지들을 살펴보자면
repository는 이미지 명
tag 는 버전(latest는 최신)
image ID 는 이미지의 아이디
created 는 만들어진 날로부터 몇일 지났는지알수있다
여기서
리스트에 나와있는 이미지를 실행시키려면
다음 커맨드를 처보자
{command} 는 이미지를 실행시키고 나서 cmd에 입력할 커맨드를 입력한다
Ex) /bin/bash, pwd 등등..
docker run httpd
위와같이 무언가 서버가 동작한다는 메새지가 뜬다.
여기서 커맨드에 몇가지 유용한 옵션을 보자면
-d 이미지를 백그라운드에서 실행시켜준다.
서버를 띄운뒤 ctrl+c를 눌렀을경우 서버가 꺼지는 경우를 방지할 수있다.
docker run -d [container id/name]
포그라운드일 경우
백그라운드일 경우
컨테이너가 백그라운드에서 동작할때 해당 컨테이너의 cmd(back ground)를 현재 cmd으로(fore ground) 가져오는방법
docker attach [container id/name]
-it/i 는 테이너를 종료하지 않은체로, 터미널의 입력을 계속해서 컨테이너로 전달하기 위해서 사용한다. 때문에 컨테이너로 계속해서 커맨드를 보낼 수 있다.
i인지 it인지 햇갈린다.
docker run -i [container id/name]
실행할 이미지의 이름을 정해준다.
이미지를 지운다(컨테이너가 떠있지 않은 이미지만 지운다)
docker rmi [image name]
현재 실행중인 컨테이너 리스트를 보여준다.
ps에 모든 컨테이너를 노출시킨다.
현제 꺼져있는 컨테이너도(status = exited) 노출된다.
현제 꺼져있는 컨테이너를 다시 실행
docker start [container name/id]
현재 꺼져있는 컨테이너를
다시 켜지게 한다
현재 실행중인 컨테이너를 멈춘다.
docker stop [container id/name]
실행중인 컨테이너로 커맨드 요청을 보낼 수 있다.
docker exec [containerId/containername] 커맨드
위에 실행되는 과정을 보자면
이미지를 백그라운드로실행(-d) 그런뒤 ps으로 컨테이너 아이디 확인 그런뒤
docker exec b1bae952f7a6 ls
그렇게 하면 현제 디렉토리의 ls을 실행하여 리스트를 보여준다.
컨테이너의 sh을 실행시키고 그곳에서 -it(interactive(STDIN), TTY 지원)
추가로 exit을 입력하면 해당 컨테이너에서 나올수 있다.
현재 실행중인 컨테이너의 로그를 볼 수 있다.
docker logs [container id/name]
로그를 계속 보고싶다면
docker logs [container id/name] -f
컨테이너를 지운다 (컨테이너는 중단상태이여야한다)
docker stop [container name/id]
docker rm [container name/id]