<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>OdoBangJung</title>
        <link>https://velog.io/</link>
        <description>Cloud Engineer</description>
        <lastBuildDate>Fri, 06 Sep 2024 04:48:21 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>OdoBangJung</title>
            <url>https://velog.velcdn.com/images/c_chris/profile/73ab8bdc-079a-4da8-8239-c2bfeeca3fd1/image.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. OdoBangJung. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/c_chris" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[NAVER Cloud] Docker Nginx Image]]></title>
            <link>https://velog.io/@c_chris/NAVER-Cloud-Docker-Nginx-Image</link>
            <guid>https://velog.io/@c_chris/NAVER-Cloud-Docker-Nginx-Image</guid>
            <pubDate>Fri, 06 Sep 2024 04:48:21 GMT</pubDate>
            <description><![CDATA[<aside>
💡 [docker.io] 에서 제공 받는 이미지를 사용하는 경우, hub.docker.com에서 해당 이미지에 대한 기본적인 정보 및 사용 방법을 사용하는 것을 Search 하여 사용하는 것을 권고함

</aside>


<p>Image는 각각 Nginx 및 MySQL를 설치를 진행</p>
<h1 id="nginx-image">Nginx Image</h1>
<p>Docker Image Nginx 설치 및 확인</p>
<pre><code>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</code></pre><p>Docker Container 실행 (ACG 8001  Open)</p>
<pre><code>## --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   &quot;/docker-entrypoint.…&quot;   41 seconds ago   Up 40 seconds   0.0.0.0:8001-&gt;80/tcp   my-edu-web1</code></pre><p>HTML 웹 소스 변경 진행</p>
<p>Welcome to nginx! 에서 이제 여러분들이 원하는 페이지로 변경</p>
<pre><code>vim index.html

...

&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Docker Sample Application&lt;/title&gt;
    &lt;style&gt;
        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;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;h1&gt;Docker Container Sample Application.&lt;/h1&gt;
    &lt;h2&gt;&quot;Hello, Everyone&quot;&lt;/h2&gt;
    &lt;p&gt;Your application is now running on a container in Docker Container.&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre><p>생성한 html을 docker Container로 Copy</p>
<pre><code>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
...</code></pre><p><img src="https://velog.velcdn.com/images/c_chris/post/ae1227df-7ff2-437d-b564-e2023e3238b3/image.png" alt=""></p>
<p>만일, 이미 가지고 있는 html 또는 Image를 Dokcer Image 배포할 이미지로 만들고 싶다면 Dockerfile 을 만들어서, 가지고 있는 Image를 다시 패키징해서 신규 Image로 생성하면 가능.</p>
<pre><code>vim Dockerfile

...

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

...

## 마지막의 . 의 경우 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
 =&gt; [internal] load build definition from Dockerfile                       0.0s
 =&gt; =&gt; transferring dockerfile: 156B                                       0.0s
 =&gt; [internal] load metadata for docker.io/library/nginx:1.25.0-alpine     0.0s
 =&gt; [internal] load .dockerignore                                          0.0s
 =&gt; =&gt; transferring context: 2B                                            0.0s
 =&gt; [internal] load build context                                          0.0s
 =&gt; =&gt; transferring context: 833B                                          0.0s
 =&gt; [1/2] FROM docker.io/library/nginx:1.25.0-alpine                       0.1s
 =&gt; [2/2] COPY index.html /usr/share/nginx/html/index.html                 0.0s
 =&gt; exporting to image                                                     0.0s
 =&gt; =&gt; exporting layers                                                    0.0s
 =&gt; =&gt; writing image sha256:ce279331777e525e2fceb600207771f517fdd77ae5f09  0.0s
 =&gt; =&gt; 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

...</code></pre><p>신규 Image “myweb”을 배포 (ACG 8002 Open)</p>
<pre><code>docker run -d -p 8002:80 myweb:v1.0</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[[NAVER Cloud] Ubuntu Docker Install]]></title>
            <link>https://velog.io/@c_chris/NAVER-Cloud-Ubuntu-Docker-Project-1</link>
            <guid>https://velog.io/@c_chris/NAVER-Cloud-Ubuntu-Docker-Project-1</guid>
            <pubDate>Fri, 06 Sep 2024 04:39:12 GMT</pubDate>
            <description><![CDATA[<h1 id="environment">Environment</h1>
<p>Docker 환경을 구성하기 위해, 필자는 네이버클라우드의 Ubuntu 22.04 에서 구축을 진행.</p>
<blockquote>
<p>IaaS 환경 : NAVER CLOUD
OS : Ubuntu 22.04</p>
</blockquote>
<p>VPC 및 Subnet 구성의 경우 다음과 같이 구성</p>
<ul>
<li>VPC : 10.0.0.0/16</li>
<li>Public Subent : 10.0.1.0/24</li>
<li>Private Subnet : 10.0.10.0/24</li>
</ul>
<p>Private Subnet의 경우 이후, Docker SWARM 구성을 위해서 사전에 진행 한 것.</p>
<h1 id="docker-install">Docker Install</h1>
<ul>
<li>패키지 업데이트 및 설치 준비</li>
</ul>
<p>OS의 패키지를 최신 버전으로 업데이트를 진행</p>
<pre><code class="language-jsx">sudo apt-get update</code></pre>
<ul>
<li>필수 패키지 설치</li>
</ul>
<p>Docker를 설치하기 전에 HTTPS를 통해 패키지를 사용하기 위해 몇 가지 필수 패키지를 설치</p>
<pre><code class="language-jsx">sudo apt-get update
sudo apt-get install \
  ca-certificates \
  curl \
  gnupg \
  lsb-release</code></pre>
<ul>
<li>Docker의 공식 GPG 키 추가</li>
</ul>
<p>Docker 패키지의 서명을 확인할 수 있도록 GPG 키를 추가</p>
<aside>
💡 Ubuntu 22.04부터 시스템 보안 강화를 위해 apt key를 keyring 아래에 GPG key 저장을 권고.

</aside>

<pre><code class="language-jsx">sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg</code></pre>
<ul>
<li>Docker 저장소 설정</li>
</ul>
<p>Docker의 패키지를 다운로드할 수 있도록 apt 패키지 소스 목록에 Docker 저장소를 추가</p>
<pre><code class="language-jsx">echo \
  &quot;deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable&quot; | sudo tee /etc/apt/sources.list.d/docker.list &gt; /dev/null</code></pre>
<ul>
<li>Docker Engine 설치</li>
</ul>
<p>Docker 엔진과 Docker Compose를 설치</p>
<pre><code class="language-jsx">sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin</code></pre>
<ul>
<li>Docker 설치 확인</li>
</ul>
<p>Docker가 정상적으로 설치되었는지 확인</p>
<pre><code class="language-jsx">sudo docker --version

...
Docker version 27.1.2, build d01f264
...

sudo systemctl start docker
sudo systemctl enable docker</code></pre>
]]></description>
        </item>
    </channel>
</rss>