- 도커 생성
- 명령어는 한줄로 쭉 써도 되지만,
명령어가 길경우 \
를 사용해서 줄바꿈을 해 가독성을 높힐 수 있다.
docker run \
--name=nginx_1 \
-p 80:80 \
-v /docker_projects/nginx_1/volumes/usr/share/nginx/html:/usr/share/nginx/html \
-d \
--restart="always" \
nginx
- 명령어 분석
- docker run … nginx : 도커 내부에서 nginx 실행
- --name=nginx_1 : name 은 nginx_1 로 생성
- -p 80:80 : 80 포트로 들어오면 80 포트로 포트포워딩
- -d : 데몬으로 실행
- --restart="always" : 도커 container 실행시 같이 실행
- -v /… : /… : 볼륨 설정
📍 볼륨 설정
-v
의 명령어로 볼륨을 설정할 수 있다.
:
를 기준으로 앞쪽이 host , 뒷쪽이 gest 이다.
- 호스트 - 리눅스의 폴더 경로 (호스트 경로)
- 게스트 - 도커 내부의 container (게스트 경로)
(호스트)
/docker_projects/nginx_1/volumes/usr/share/nginx/html
:
(게스트)
/usr/share/nginx/html
📍 볼륨 설정을 해줘야되는 이유
- 호스트의 경로에 접근할 경우 게스트의 container 로 포트포워딩 처럼 이동하게 된다.
- 이제 우리가 DNS 에 등록한 url 에 접속하면 403 에러가 발생하게된다.
- docker container 내부에 아무것도 없기 때문
📍 웹페이지에 html 문서 작성하기
cd /docker_projects/nginx_1/volumes/usr/share/nginx/html
- html 문서 작성하기
- 이렇게 하면 도커 밖에서 편리하게 도커 내부의 파일에게 접근할 수 있게된다.
- 불필요하게 도커로 접속하고, 작업완료후 빠저나올 필요가 없어진다.
echo "<h1 style='color:blue;'>Hello</h1>" > index.html
📍 영속성 확인하기
- 이렇게 만들어진 파일은 docker 가 삭제되도 계속 남아있게 된다.
- 즉, 포트가 맘에들지 않거나 이럴경우 기존 도커를 삭제하고 새로 변경해서 도커를 생성하면 파일을 새로 만들지 않고 설정을 변경할 수 있게된다.
(도커 삭제)
docker rm -f nginx_1
(도커 다시 생성)
docker run \
--name=nginx_2 \
-p 81:80 \
-v /docker_projects/nginx_1/volumes/usr/share/nginx/html:/usr/share/nginx/html \
-d \
--restart="always" \
nginx