Docker Container 실행 실습
유트뷰 강좌인 [따배도] - 이성미님"의 유트뷰 강좌를 기반으로 내가 필요한 정리하는 내용이다.
출처 : [따배도] https://www.youtube.com/playlist?list=PLApuRlvrZKogb78kKq1wRvrjg1VMwYrvi
[따배도] 도커 시리즈
www.youtube.com
[따배도] 3-2. 도커 컨테이너 살펴보기: 실습편
https://www.youtube.com/watch?v=gNsjVOuF2jY
이번 강좌는 Docker Hub에서 제공하는 Docker Image를 다운받아서 실행하는 실습의 내용이다.
Docker image를 다운받기 전에 알아야 할 내용 ( 실제 강좌에서는 중간에 나옵니다. )
1] 저장된 이미지 목록 보기
cmd : docker image ls 또는 docker images
다운받은 image가 없는 상태입니다.

2] 저장된 image의 layer 구조 보기
/var/lib/docker 디렉토리를 보면 "overlay2" 라는 디렉토리가 있고,
나중에 docker pull로 받아오면, 받아온 것을 이 디렉토리에서 확인할 수 있다.
그리고 pull한 대상(container인듯 한데.)의 구성된 layer 구조로 존재하게 된다.
현재는 ㅣ(소문자 L) 이라는 layer하나만 있다
아래에서 실습으로 받을 nginx는 6개의 layer로 구성되어 있다. ( 강좌에서는 5개의 layer로 되어 있습니다)
아래 이미지는 pull하기 전이라.. 아무것도 없습니다.

1. Docker Hub에서 다운받을 대상 image를 검색(search)
- nginx 를 다운받을 것이라서, Docker Hub에 nginx가 있는지 검색 해보자
cmd : root@docker-ubuntu:~# docker search nginx

2. Docker Hub에서 image 다운(pull) 받기
nginx를 다운받아 봅시다.
cmd : root@docker-ubuntu:/# docker pull nginx[:latest]
latest 속성으로 nginx를 pull을 해온다.
아래 nginx container를 위해 6개를 pull하였다.

다운을 한개 받았으니, docker image 목록도 한번 봅시다.
nginx가 하나 있는 것을 확인

그리고 받은 "nginx" container image가 몇개의 layer로 되어 있는지 확인 해봅시다. 진짜 6개 입니다.

3. 다운받은 image container를 실행(run)하기
Regist에 등록되어 있는 image를 docker VM으로 옮겨서 container를 실행합니다.
cmd format : docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
cmd : docker run --name web -d -p 80:80 nginx
: --name web : 이름이 web으로 설정
: -d : background로 container를 실행 ( Run container in background and print container ID )
: -p : container port를 80으로 설정 ( Publish a container's port(s) to the host )

실행 중인 docker를 확인 해보자
cmd : docker ps
web이라는 이름, port 80으로 실행 중임을 확인할 수 있다.

4. 실행(run)중인 web server에 접속
1) PuTTY에서 접속 테스트를 해보는 방법
cmd : curl localhost:80
열려있는 80 port로 접속해서 정보를 받아와서 화면에 표시한다

2) Browser로 접속 테스트를 해보는 방법
web Brower로 접속해보고 싶어졌다. 이래저리 뒤지다가, ubuntu에서 web browser를 사용해야 된다는 것을 뒤에 깨우침
( 계속 내 PC의 chrom으로 접속하려 하니 안되지 ㅠㅠ )

5. 실행(run)중인 container(web) 중지(stop) 시키기
1) container 중지 시키기
cmd : docker stop web
그리고 다시 curl로 접속하면, 연결이 아니아니 아니되오.

2) container 삭제 시키기
cmd : docker rm web
Docker Host에서 이름이 web인 container를 삭제함 ( Image를 지운게 아님 )
실행중인 process를 확인 해보면.. 없음.

6. docket image 삭제(rm image / rmi) 하기
Regist에서 image를 삭제하기 위해서는 rm image(또는 rmi) 명령어를 사용
cmd : docker rm image nginx

/var/lib/docker/overlay2 에서 보면, image가 있으며
rmi 이후에는 6개가 없어 진 것을 확인 할 수 있음.
여기까지가 이번 강좌의 내용 끝입니다.
안하던 리눅스를 갑자기 docker로 처음부터?하려니 참 힘드네요.
꾸준히 하는 방법, 계속 익숙해 지는 방법 밖에 없는거 같습니다.
그럼 이만