컨테이너 생성하기
컨테이너는 이미지를 바탕으로 생성하게 된다.
다음 명령어로 이미지를 이용해서 컨테이너를 생성할 수 있다.
docker create <이미지명>
지난 포스팅에서 nginx 이미지를 삭제했었는데,
알아서 최신 버전으로 pull해서 설치까지 해준다.
컨테이너를 만들었으니 확인해보자.
다음 명령어로 로컬 시스템에 있는 모든 Docker 컨테이너 목록을 볼 수 있다.
docker ps -a
여기에 STATUS 부분에 'Created' 라는 상태가 보일 것이다.
'Created'는 생성은 했지만, 실행중인 컨테이너가 아닌 상태이다.
컨테이너 실행하기
다음 명령어로 nginx 컨테이너를 실행해주자.
docker start <CONTAINER ID>
실행해준 뒤, 다시 리스트를 보면 STATUS가 'Up'으로 된 것을 볼 수 있다.
'Up'은 실행중인 컨테이너라는 의미이다.
생성과 동시에 실행하기
지금은 create로 컨테이너를 만들고, start로 컨테이너를 실행시켜주었다.
그런데, run이라는 명령어로 한 번에 컨테이너를 만들고, 바로 실행시킬 수 있다.
이 run 명령어는 이전 포스팅에서 잠깐 보였던 적이 있다.
2025.07.30 - [Docker] - Docker를 활용해서 Nginx 설치 및 실행하기
Docker를 활용해서 Nginx 설치 및 실행하기
Nginx란?Nginx는 웹 서버, 리버스 프록시, 로드 밸런서, HTTP 캐시 등 다양한 역할을 하는 서버 중 하나이다.여기서 웹 서버는 HTML 웹 페이지를 렌더링 시키는 역할을 한다.나머지는 차차 알아보자. Ngi
jun-coding.tistory.com
일단, 설치되어 있는 이미지와 컨테이너를 모두 지워주었다.
지우는 명령어는 지난 포스팅에 언급해두었다!
2025.07.31 - [Docker] - 도커 이미지 조회 / 삭제하기
도커 이미지 조회 / 삭제하기
2025.07.30 - [Docker] - 도커 이미지 다운로드 하기 도커 이미지 다운로드 하기컨테이너를 실행하려면 도커 이미지가 필요하다.이미지를 다운받기 위해서는 다음과 같은 명령어를 입력하면 된다.docke
jun-coding.tistory.com
그리고 다음 명령어로 nginx 이미지를 설치하고, 실행해주면 된다.
docker run nginx
이미지가 없으니, 자동으로 이미지를 다운로드 하고,
실행까지 시켜주는 것을 볼 수 있다.
다만, foreground에서 실행되기 때문에 로그들이 터미널에 보이게 된다.
터미널에서는 실시간 로그들이 보이기 때문에,
만약 종료하고 싶으면 윈도우는 Ctrl + C,
Mac은 Command + C를 누르면 된다.
background에서 실행시키고 싶으면,
이전에 언급한 `-d` 플래그로 실행시켜주면 된다.
docker run -d nginx
컨테이너 목록까지 확인해보면 잘 실행되고 있는 것을 볼 수 있다.
컨테이너에 이름 붙이기
nginx 컨테이너에 이름을 붙이고 싶으면 다음과 같이 입력하면 된다.
docker run -d --name my-web-server nginx
확인해보면, NAMES에 'my-web-server'로 잘 지정된것을 볼 수 있다.
포트 연결하기
컨테이너를 보면 PORTS 부분에 '80/tcp'라고 적힌것을 볼 수 있다.
그러면 브라우저에서 80번 포트로 접속할 수 있을까?
웹 HTTP의 기본 포트가 80번이니 브라우저에서 localhost로 접속해보자.
위와 같이 nginx 페이지가 잘 보이는 것을 확인할 수 있다.
하지만, 이것은 캐싱된 페이지일 수 있으니 '시크릿 모드'로 접속해보자.
이처럼, 접속할 수 없는 것을 볼 수 있다.
무슨 이유일까?
컨테이너는 '독립된 공간' 이라고 했다.
이 말은, 호스트 컴퓨터와 컨테이너는 서로 다른 네트워크를 사용한다는 것이다.
따라서 우리의 컴퓨터에서는 '호스트 컴퓨터'에만 접근이 가능하고,
'컨테이너'로 접근할 수는 없는것이다.
따라서 이 '독립된 컨테이너'에 접근하려면,
포트를 연결해주어야 한다.
기존의 컨테이너는 지우고,
다음 명령어로 새로 만들어주자.
# docker run -d -p [호스트 포트]:[컨테이너 포트] 이미지명[:태그명]
docker run -d -p 4000:80 nginx
이렇게 생성한 뒤, PORTS를 보면 아까와는 다르게 표시되고 있다.
4000번 포트로 '호스트 컴퓨터'에 접근하면,
호스트 컴퓨터가 80번 포트로 '컨테이너'에 접근할 수 있게되는것이다.
그럼 브라우저에서 `localhost:4000`으로 접속해보자.
이와 같이, 4000번 포트로 접속하면 nginx 페이지가 잘 뜨는 것을 볼 수 있다.
브라우저(HTTP)의 기본 포트가 80이라고 했으니,
80:80으로 설정하면 그냥 localhost로 접속해도 되지 않을까?
기존 컨테이너를 지운 뒤, 다음과 같이 입력해보자.
# docker run -d -p [호스트 포트]:[컨테이너 포트] 이미지명[:태그명]
docker run -d -p 80:80 nginx
그리고 나서, 브라우저에는 캐싱된 페이지가 남을 수 있기 때문에,
브라우저 전체를 끄고 다시 시크릿 모드로 들어가주자.
기존에 4000번 포트로 다시 들어가보면 연결이 되지 않는 것을 볼 수 있다.
하지만 이제 80번 포트, 즉 그냥 localhost로 접속해보면 다음과 같이 정상적으로 보인다.
'Docker' 카테고리의 다른 글
컨테이너 로그 조회하기 (1) | 2025.07.31 |
---|---|
컨테이너 관련 명령어 알아보기 (2) | 2025.07.31 |
도커 이미지 조회 / 삭제하기 (0) | 2025.07.31 |
도커 이미지 다운로드 하기 (0) | 2025.07.30 |