클라우드/Docker

우분투 이미지에 Nginx 설치

dusqo7951 2024. 9. 10. 22:10

1. 방법 1

FROM ubuntu:22.04

RUN  apt-get update

RUN  apt-get install -y nginx

RUN  echo "\ndaemon off;" >> /etc/nginx/nginx.conf  

RUN  echo "<h1>Hello, Docker V1</h1>" > /var/www/html/index.html

EXPOSE 80

CMD  ["nginx"]

 

 

C:\vagrant> docker image build --tag mynginx:v1 .		⇐ 이미지 생성(빌드)
                                                ~ 
                                                현재 디렉터리 ⇐ Dockerfile이 있는 위치  

C:\vagrant> docker image ls					⇐ 이미지 확인
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
mynginx      v1        a2eec4dde8ef   44 seconds ago   189MB


C:\vagrant> docker container run -d --rm --name myweb -p 9999:80 mynginx:v1  (밑에 설명보기)

C:\vagrant> docker container ls
CONTAINER ID   IMAGE        COMMAND   CREATED         STATUS         PORTS
     NAMES
0bae508c84ea   mynginx:v1   "nginx"   6 minutes ago   Up 6 minutes   0.0.0.0:9999->80/tcp   myweb


nginx 동작을 확인
C:\vagrant> curl http://localhost:9999/index.html
<h1>Hello, Docker V1</h1>

 

docker container run

-d(detach모드로 컨테이너실행)

--rm(컨테이너종류시 컨테이너 삭제)

--name(컨테이너이름지정)

myweb(컨테이너이름)

-p 9999(9999포트를 컨테이너내부의)

:80(80포트로 매핑)

mynginx:v1 (컨테이너 생성, 실행에 사용알 이미지이름)

              

 

2. 방법 2 (이방법이 더 좋다)

(내부수정 / 변경코드)

 

FROM nginx

RUN  echo "<h1>Hello, Docker V2 by crpark</h1>" > /usr/share/nginx/html/index.html

 

C:\vagrant> docker image build --tag mynginx:v2 .

C:\vagrant> docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
mynginx      v2        1aea6f8fdec8   18 seconds ago   188MB
mynginx      v1        a2eec4dde8ef   49 minutes ago   189MB
nginx        latest    39286ab8a5e1   3 weeks ago      188MB

C:\vagrant> docker container run -d --rm --name myweb2 -p 8888:80 mynginx:v2
5d638e9c0aab67dfd8fd54ec8b642b7e1dd6c8fe8df59a120536378029e08c26

C:\vagrant> docker container ls
CONTAINER ID   IMAGE        COMMAND                   CREATED          STATUS
PORTS                  NAMES
5d638e9c0aab   mynginx:v2   "/docker-entrypoint.…"   14 seconds ago   Up 14 seconds   0.0.0.0:8888->80/tcp   myweb2
0bae508c84ea   mynginx:v1   "nginx"                   48 minutes ago   Up 48 minutes   0.0.0.0:9999->80/tcp   myweb

C:\vagrant> curl http://localhost:8888/index.html
<h1>Hello, Docker V2 by crpark</h1>

C:\vagrant> curl http://localhost:9999/index.htm

 

 

훨신 코드가 쉬워진다.

 

 

 

 

이미지 배포하기

 

태그 변경   
                                        본인의 도커 허브 계정명 
                                        ~~~~~~~~~
C:\vagrant> docker image tag mynginx:v2 myanjini/mynginx:v2
                             ~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~
                             현재       변경 
C:\vagrant> docker image ls
REPOSITORY         TAG       IMAGE ID       CREATED          SIZE
mynginx            v2        1aea6f8fdec8   6 minutes ago    188MB
myanjini/mynginx   v2        1aea6f8fdec8   6 minutes ago    188MB
mynginx            v1        a2eec4dde8ef   55 minutes ago   189MB
nginx              latest    39286ab8a5e1   3 weeks ago      188MB


도커 허브에 이미지를 등록
C:\vagrant> docker image push myanjini/mynginx:v2

도커 허브에 등록된 이미지를 이용해서 컨테이너를 실행
C:\vagrant> docker container run -d --rm --name myweb3 -p 7777:80 myanjini/mynginx:v2

C:\vagrant> docker container ls
CONTAINER ID   IMAGE                 COMMAND                   CREATED          STATUS          PORTS                  NAMES
09434b844fe5   myanjini/mynginx:v2   "/docker-entrypoint.…"   8 seconds ago    Up 7 seconds    0.0.0.0:7777->80/tcp   myweb3
5d638e9c0aab   mynginx:v2            "/docker-entrypoint.…"   8 minutes ago    Up 8 minutes    0.0.0.0:8888->80/tcp   myweb2
0bae508c84ea   mynginx:v1            "nginx"                   56 minutes ago   Up 56 minutes   0.0.0.0:9999->80/tcp   myweb


C:\vagrant> curl http://localhost:7777/index.html
<h1>Hello, Docker V2 by crpark</h1>

 

 

 

명령어들의 뜻을 이해하고 쓰자!

'클라우드 > Docker' 카테고리의 다른 글

Docker, Kubernetes, Cloud Native  (0) 2024.09.12
Vagrant를 이용하여 Ubuntu 리눅스 및 nginx 설치  (2) 2024.09.10
Docker(설치)  (0) 2024.09.10