- 웹 앱을 만드려면 운영체제 위에 웹서버나 데이터베이스를 깔아야한다.
- 하지만 과정이 까다롭다.
- 때문에 등장한 게 도커.
- 하나의 컴퓨터에 가상으로 컴퓨터를 만들고 OS를 깔고 웹서버를 설치하면 별도의 컴퓨터는 필요없다.
- 한대의 컴퓨터안에서 각각의 앱을 격리된 환경에서 실행한다.
- 운영체제가 설치된 컴퓨터를 host,
- host에서 실행된 각각의 격리된 환경을 container라고 부른다.
- 도커는 리눅스 운영체제 기술이다.
- 도커 위에서 돌아가는 컨테이너, 또 그 컨테이너 안에서 돌아가는 앱들은 리눅스 안에서 돌아가는 앱들이다.
- 리눅스 OS가 아니면, 가상머신을 깔고 그 가상머신에 리눅스 운영체제를 깔면 거기서 컨테이너 기술을 사용할 수 있다.
- 도커 위에서 돌아가는 컨테이너, 또 그 컨테이너 안에서 돌아가는 앱들은 리눅스 안에서 돌아가는 앱들이다.
- hub.docker.com 에서 필요한 소스를 받으면 된다.
- 이곳에서 찾은 것을 image라고 한다.
- 이미지를 실행하는 것을 container라고 한다.
- 이미지도 여러 개의 컨테이너를 가질 수 있다.
- 이미지를 다운 받는 행위를 pull, 실행을 run이라 한다.
- docker run [image name] : 실행
- docker ps : 현재 실행 중인 상황
- docker ps -a : 전체 상황
- docker run --name [container name] [image name] : 이름을 붙여 실행
- docker logs -f [container name] : 로그의 변화 실시간으로
- docker stop [container name] : 중단
- docker rm [container name] : 컨테이너 지우기(중단 후)
- docker rm --force [container name] : 중단 없이 지우기
- docker rmi [image name] : 이미지 삭제
- docker run --name [container name] -p 8080:80 [image name] : 포트까지 지정하여 실행
- docker exec it [container name] /bin/bash : 컨테이너의 쉘로 들어가 명령어 실행. (exit로 나감)
- cd /usr/local/apache2/htdocs
- apt update
- apt install nano
- nano index.html
: 이곳에서 html 수정 가능 but 컨테이너가 사라질 때 위험함.
- cd /usr/local/apache2/htdocs
- docker run -p 8080:80 -v 절대경로:/usr/local/apache2/htdocs httpd : 호스트에서 html 수정 가능
- 도커 실행하는 명령어가 너무 길다.
- 때문에 docker-compose.yml이라는 파일을 만들고 그곳에 명령어를 입력한다.
- docker-compose up 명령어 한 줄로 컨테이너가 만들어진다.