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 |