[NAVER Cloud] Docker Nginx Image

OdoBangJung·2024년 9월 6일

Docker

목록 보기
2/2
post-thumbnail
💡 [docker.io] 에서 제공 받는 이미지를 사용하는 경우, hub.docker.com에서 해당 이미지에 대한 기본적인 정보 및 사용 방법을 사용하는 것을 Search 하여 사용하는 것을 권고함

Image는 각각 Nginx 및 MySQL를 설치를 진행

Nginx Image

Docker Image Nginx 설치 및 확인

docker pull nginx:1.25.0-alpine
docker images

###
$ docker images
REPOSITORY   TAG             IMAGE ID       CREATED         SIZE
nginx        1.25.0-alpine   fe7edaf8a8dc   15 months ago   41.4MB

Docker Container 실행 (ACG 8001 Open)

## --name의 경우 Docker Conatiner를 구분하기 위해서 Command를 입력하는 것이다.
docker run -d -p 8001:80 --name=my-edu-web1 nginx:1.25.0-alpine

## docker 실행 확인
docker ps | grep my-edu-web1

...
$ docker ps | grep my-
1299adff2863   nginx:1.25.0-alpine   "/docker-entrypoint.…"   41 seconds ago   Up 40 seconds   0.0.0.0:8001->80/tcp   my-edu-web1

HTML 웹 소스 변경 진행

Welcome to nginx! 에서 이제 여러분들이 원하는 페이지로 변경

vim index.html

...

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Docker Sample Application</title>
    <style>
        body {
            background-color: #a3d3ff;
            font-family: Arial, sans-serif;
            text-align: center;
            padding: 50px;
        }
        h1 {
            font-size: 2.5em;
            margin-bottom: 0.2em;
        }
        h2 {
            font-size: 2em;
            margin-bottom: 0.5em;
        }
        p {
            font-size: 1.2em;
        }
    </style>
</head>
<body>
    <h1>Docker Container Sample Application.</h1>
    <h2>"Hello, Everyone"</h2>
    <p>Your application is now running on a container in Docker Container.</p>
</body>
</html>

생성한 html을 docker Container로 Copy

docker cp index.html my-edu-web1:/usr/share/nginx/html/index.html

...
Successfully copied 2.56kB to my-edu-web1:/usr/share/nginx/html/index.html
...

만일, 이미 가지고 있는 html 또는 Image를 Dokcer Image 배포할 이미지로 만들고 싶다면 Dockerfile 을 만들어서, 가지고 있는 Image를 다시 패키징해서 신규 Image로 생성하면 가능.

vim Dockerfile

...

FROM nginx:1.25.0-alpine
COPY index.html /usr/share/nginx/html/index.html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

...

## 마지막의 . 의 경우 Dockerfile의 위치를 나타냅니다.
docker build -t myweb:v1.0 .
docker images

...

root@edu-docker-001:~# docker build -t myweb:v1.0 .
[+] Building 0.2s (7/7) FINISHED                                 docker:default
 => [internal] load build definition from Dockerfile                       0.0s
 => => transferring dockerfile: 156B                                       0.0s
 => [internal] load metadata for docker.io/library/nginx:1.25.0-alpine     0.0s
 => [internal] load .dockerignore                                          0.0s
 => => transferring context: 2B                                            0.0s
 => [internal] load build context                                          0.0s
 => => transferring context: 833B                                          0.0s
 => [1/2] FROM docker.io/library/nginx:1.25.0-alpine                       0.1s
 => [2/2] COPY index.html /usr/share/nginx/html/index.html                 0.0s
 => exporting to image                                                     0.0s
 => => exporting layers                                                    0.0s
 => => writing image sha256:ce279331777e525e2fceb600207771f517fdd77ae5f09  0.0s
 => => naming to docker.io/library/myweb:v1.0                              0.0s
root@edu-docker-001:~# docker images
REPOSITORY   TAG             IMAGE ID       CREATED         SIZE
myweb        v1.0            ce279331777e   8 seconds ago   41.4MB
nginx        1.25.0-alpine   fe7edaf8a8dc   15 months ago   41.4MB

...

신규 Image “myweb”을 배포 (ACG 8002 Open)

docker run -d -p 8002:80 myweb:v1.0
profile
Cloud Engineer

0개의 댓글