컨테이너에 대하여
이미지에 대하여
Nginx 이미지를 받아와서 로컬 환경에서 웹서버를 구동해보자
Nginx 이미지 검색해보기
docker search nginx
docker의 모든 명령어는 docker로 시작한다.
docker search {이미지 명}
search 명령어는 이미지 명에 해당하는 이미지 들을 docker hub라는 사이트에서 검색을 한 후 결과를 보여준다.
위와 같이 나온다면 정상!
가장 위에 있는 nginx 이미지가 official이고 stars도 가장 많음을 알 수 있다.
해당 이미지의 이름은 nginx이므로 그대로 다운로드해보자
Nginx 이미지 다운로드하기
docker pull nginx
// docker pull nginx:latest
// docker pull nginx:1.21.1
pull 명령어를 통해서 방금 검색한 nginx 이미지를 다운로드할 수 있다.
nginx 같은 공식 이미지는 docker hub라는 사이트에서 받아오게 된다.
docker pull nginx를 실행하면 가장 최신 버전인 latest태그가 달린 nginx:latest를 자동으로 받아온다.
위 사이트의 tag탭을 보면 nginx버전이 1.21.1, 1.21 등 다양하게 있음을 알 수 있다.
그래서 docker pull nginx:1.21을 실행하면 nginx:1.21 버전을 받아오게 된다.
1.21은 태그라고 불린다.
현재 nginx 버전은 1.21.1 == latest이다.
이미지 목록 출력하기
docker images
// docker image ls
docker images를 통해 지금 가지고 있는 이미지들을 볼 수 있다.
nginx 컨테이너 만들기
docker run -d --name webserver -p 80:80 nginx:1.21.1
// docker run -d --name {컨테이너 이름} -p <host port number>:<container port number> {이미지 명}
하나씩 파헤쳐 보자.
run : 이미지를 가지고 컨테이너를 만들고 구동하는 명령어.
-d : 컨테이너를 만들면 백그라운드에서 계속 구동하게 하는 옵션. ('데몬'이라고 읽는다.)
--name : 컨테이너의 이름을 지정해주는 옵션. (따로 지정해주지 않으면 무작위로 이름이 생성된다.)
-p : host port number와 conatiner의 port number를 연결해주는 옵션.
HOST의 80번 포트에 유입되는 모든 트래픽은 nginx container의 80번 포트로 전달되게 한다.
-> localhost:80에 접속한다면 해당 트래픽이 docker의 nginx container의 80번 포트로 전달된다.
nginx의 기본 포트는 80번으로 지정되어 있기 때문에 localhost:80으로 접속하면 nginx 고유 페이지를 볼 수 있다.
물론 nginx.conf파일을 수정해서 기본 포트를 변경할 수 있다.
이미지 명 : 현재 가지고 있는 이미지 중에서 선택. 태그를 붙이지 않는다면 latest가 기본 값. (기본 값으로 사용하려면 당연히 latest 이미지를 가지고 있어야 함)
위 명령어를 실행하면 아래와 같이 알 수 없는 숫자+알파벳이 뜬다.
컨테이너 만들기에 성공한 것이다!
실행 중인 컨테이너 확인하기
docker ps
name은 webserver이고 image는 nginx:1.21.1을 사용했음을 알 수 있다.
ps : process status
모든 컨테이너 확인하기
docker ps -a
-a : all의 약자이다. 생성된 모든 컨테이너를 보여준다.
결과 확인
인터넷 주소창에 localhost를 쳐보자
(80번 포트가 웹서버 기본 포트이므로 따로 localhost:80이라고 쳐주지 않아도 된다.)
위와 같은 화면이 나온다면 성공이다!
'DevOps > Docker' 카테고리의 다른 글
[Docker] Django 개발 환경 세팅 #2 (0) | 2021.08.05 |
---|---|
[Docker] Django 개발 환경 세팅 #1 (0) | 2021.08.04 |
[Docker] MariaDB - docker로 관리하기 (0) | 2021.07.29 |
[Docker] container, image 삭제 (2) | 2021.07.26 |
[Docker] 계획 + 공부를 위해 참고한 사이트 모음 (3) | 2021.07.26 |