docker(특징, 명령어 정리)
다른 머신에서도 같은 환경을 구현할수 있다
예를 들면 내 컴퓨터: 윈도우 / 서버: 리눅스
1. 도커 위에서 돌아가는 컨테이너
컨테이너 안에 동작하는 앱들 - 리눅스 운영체제에서 동작하는 앱들이다
2. 운영체제가 리눅스 아니어도 도커 사용가능
(가상머신에 리눅스 운영체제 깔면 가능)
3. 가상머신 설치하면 속도저하가 있음
📢 명령어 정리
image: docker hub에서 찾아 다운 받은것 (pull)
container: image를 실행하는 것 (run)
이미지도 여러개의 컨테이너 갖을 수 있다
이미지 만들때 태그 붙임 - 버전확인하려고(태그에 시간을 붙인다)
docker images - 잘 다운 받았는지 확인하는 명령어
docker run - 컨테이너 만들 때
docker ps - 설치한 컨테이너를 보고싶을때
docker run name ws2 httpd - 새 컨테이너 ws2 만듦
docker stop ws2[컨테이너 이름,아이디] - 컨테이너 끄기
docker ps -a - 스탑했던 컨테이너도 보임. 스탑했다고 삭제한게 아님
docker start ws2 - 중지시켰던 컨테이너 다시 켜짐
docker logs ws2 - 로그 출력
docker logs -f ws2 -실시간 로그 확인
컨테이너 삭제하려면
docker stop ws2 - 중단하고
docker rm ws2[컨테이너 이름] - 컨테이너 삭제(우선 중단해야함)
docker rm --force 컨테이너 이름 - 중단하지 않고도 삭제 가능
docker rmi httpd - 이미지 삭제
도커를 이용하면 웹서버가 컨테이너에 설치된다
컨테이너가 설치된 운영체제 - docker host
컨테이너와 호스트는 별도의 포트와 파일 시스템을 가짐
docker run -p 80:80 httpd
docker exec ws3 /bin/sh (cf.shell임, 요즘은 bash를 쓴다)
shell - 사용자가 입력한 명령을 shell프로그램이 받아서 운영체제에 전달해주는 프로그램
docker exec -it ws3 /bin/sh 엔터 치면 # 이 나오는데
ws3 컨테이너 대상으로 내리는 명령이라는 것
exit - ws3컨테이너에서 나와서 host를 대상으로 내리는 명령
파일 시스템끼리 서로 연결하여
실행환경은 컨테이너에 맡기고 파일 수정 작업은 host에서 진행하는 방법
※ 이 방식의 장점은?
--> 호스트에서 파일 수정, 노출됨
--> 그래서 호스트안에서 파일버전 관리, 백업 수행, 에디터 코드 편집 등 가능
※ 방법
에디터 열고(vs코드 등) htdocs 폴더에 index.html 파일 만든 후
예시) docker run -p 8888:80 -v ~/Desktop/htdcs:/usr/local/appache2/htdocs/ httpd
① 8888번과 컨테이너 80번 연결
② -v(볼륨)
③ 데스크탑 아래 htdcs와 컨 테이너 안에서 usr local httpd 디렉토리를 연결