지인에게서 도커는 꼭 써봐야한다는 이야기를 들었다.
면접갔을때 도커를 써봤는지 이야기를 듣기도 했고...
그래서 일단 쌔려보기로 함.
생각보다 유튜브에 도커 강의를 찾아봤을때 영상이 많이 나오지 않는다.
생활코딩 도커 강의가 '입구 수업'이라는 워딩이 좀 우려스럽긴 하지만 1년정도밖에 안되기도 했고,
일단 경험삼아 공부삼아 하는 거라 바로 진행해보기로 했다.
도커에서 사용하는 용어가 따로 있다.
docker hub
: 도커 허브는앱스토어
처럼 무언가 다운로드하기 위한 페이지image
: 이미지는 다운받은프로그램
container
: 컨테이너는 프로그램 실행을 의미하는프로세스
라고 한다.
- 프로그램이 여러개의 프로세스를 가질 수 있는 것처럼, 이미지도 여러개의 컨테이너를 가질 수 있다.
- 이미지를 다운받는 것을
pull
- 이미지를 실행시키는 것을
run
이라 한다.
docker hub에서 Containers 클릭.
원하는 이미지를 찾아서 클릭해보면 아래 사진과 같이 다운받을 수 있는 명령어가 안내되어있다.
- httpd(아파치)
Docker official image
라고 쓰여있는 뱃지는 공식적으로 관리하는 믿을 수 있는 이미지라는 뜻.
docker pull httpd //다운로드
docker images //다운되어있는지 확인
images에서 보면 다운받은 이미지를 확인할 수 있다. run을 클릭해 실행할 수 있다.
run을 클릭하면 위와 같은 화면이 뜬다. 컨테이너 이름을 잘 지정해줘야 관리하기 편하다고 한다.
일단 강의와 같이 웹서버1로 지정해주었다.
컨테이너가 만들어졌다. stop을 클릭하면 컨테이너가 꺼진다.
delete를 클릭해서 삭제할 수도 있다.
docker run httpd //httpd 기반으로 컨테이너를 생성해 실행
docker ps //컨테이너를 보고 싶을때. id, 생성일자 등 정보 조회. 옵션이 없다면 실행중인 컨테이너만 나온다.
docker run --name [이름] httpd //[이름]으로 컨테이너 생성해 실행
docker stop [이름] //도커 끄기
docker ps -a //생성된 모든 컨테이너 리스트
docker start [이름] //중지시켰던 컨테이너 다시 실행
docker logs [이름] //로그 출력. 그러나 컨테이너가 꺼진다.
docker logs -f [이름] //실시간으로 로그를 볼 수 있음.
docker rm [이름] //컨테이너를 삭제. 실행중이라면 옵션 없이는 삭제 불가.
docker rm --force [이름] //실행중인 컨테이너도 삭제 가능.
docker rmi [이미지 이름] //이미지 삭제.
- home server 강의 듣기!
docker run -p 8000:80 httpd
// 컨테이너 실행. 전자 8000번 호스트에 후자 80번 컨테이너 연결(port forwarding)
docker run --name [이름] -p 8080:80 httpd
// p: publish. 8080번 컨테이너 포트 80번 호스트에 연결.
docker exec [이름] pwd //컨테이너에 pwd명령
docker exec -it [이름] /bin/sh //앞으로 명령이 지정한 컨테이너에 하는 명령임.(본쉘 사용시)
docker exec -it [이름] /bin/bash //앞으로 명령이 지정한 컨테이너에 하는 명령임.(bash쉘 사용시)
exit //나가기
-i : intercative
-t : tty
/usr/local/apache2/htdocs/
docker run -p 8080:80 -v ~/Desktop/htdocs:/usr/local/apache2/htdocs/ httpd
~/Desktop/htdocs
: 호스트 경로/usr/local/apache2/htdocs/
: 컨테이너 index.html 경로