Docker1_2023_02_29

도커실행 -> 도커 데몬실행 = 도커 데스크탑(UI)

 

docker ps -a = 도커 전체 목록

 

docker rm 컨테이너 ID = 도커 컨테이너 삭제

docker rmi 컨테이너 ID = 도커 이미지 삭제

 

dockerhub에서 redis 가져와서 실행

 

 

https://hub.docker.com/

 

Docker Hub Container Image Library | App Containerization

Increase your reach and adoption on Docker Hub With a Docker Verified Publisher subscription, you'll increase trust, boost discoverability, get exclusive data insights, and much more.

hub.docker.com

 

last 버전 컨테이너 생성

-d => 백그라운드 모드 실행

80:80 => Host port:컨테이너 port

localhost접속 => Host port 자동 80 포트

 

버전 지정 컨테이너 생성

 

실행 후 localhost 확인

docker 이미지만 가져오고 컨테이너 실행 X

docker pull nginx:1.20

 

docker 최초 실행 = docker run

docker 컨테이너 중지 = docker stop

docker 컨테이너 stop 후 시작 = docker start

 


mysql docker 실행

docker run --name board_mysql -e MYSQL_ROOT_PASSWORD=1234 -d -p 3306:3306 mysql:latest

 

접속방법

1. 컨테이너 호스트에 접속 후 mysql 접속

- 컨테이너 호스트접속 : docker exec -it 컨테이너 ID /bin/sh

(-it 옵션 : 터미널을 대화형(interactive) 모드로 실행하고, 표준 입력(stdin)을 연결)

- mysql -u root -p

 

 

2. 바로 mysql 접속

docker exec -it b3b26a22e0d4 mysql -u root -p

 


redis docker 실행

docker run --name myredis -d -p 6379:6379 redis

 

redis docker 접속

docker exec -it myredis redis-cli

 


ubuntu docker 실행

docker run -d -it ubuntu /bin/bash

 

ubuntu docker 접속

docker exec -it 40a8f95d7256 /bin/bash


docker 컨테이너 삭제

 

중지되어 있는 컨테이너 삭제

docker rm -f $(docker ps -q -f status=exited)

 

created상태인 컨테이너 삭제

docker rm -f $(docker ps -q -f status=created)


docker 컨테이너 log 확인

docker logs 컨테이너 ID

docker logs --tail 5 컨테이너 ID

 


docker build

 

빌드한 docker images 확인

컨테이너 실행

docker run -d myjava:v1.0

 


도커 컴포즈 버전 확인

docker-compose --version

 

최초에는 docker-compose up => 테스트해보니 문제 => docker-compose down => 수정 => docker-compose build : 이미지 갱신 => docker-compose up


ordering docker build(백엔드 서버)

 

ordering, ordering-fronted 폴더 복사 붙히기

 

파일 복사 붙혀 넣기 할때 Intellij에서 먼저 정상적으로 서버가 잘 동작하는지 확인하고 복붙하고 docker build 진행하기

build가 정상적으로 진행이 안된다면 Intellij에서 java버전 맞추기

 

Dockerfile

FROM openjdk:11 as stage1

WORKDIR /app

# gradle 빌드시에 필요한 파일들을 workdir로 copy 
COPY gradlew . 
COPY gradle gradle
COPY build.gradle .
COPY settings.gradle .
COPY src src

# /app/build/livs/*.jar 파일 아래 명령어를 통해 실행
RUN ./gradlew bootJar

FROM openjdk:11

WORKDIR /app

COPY --from=stage1 /app/build/libs/*.jar app.jar

#CMD 또는 ENTRYPOINT 를 통해 실행
ENTRYPOINT [ "java","-jar","app.jar"]

 

 

1. docker build -t order_backend:v1 .

2. docker run -d -p 8080:8080 order_backend:v1

3. docker ps

 

서버 시작 후

docker logs 컨테이너 ID = 로그 확인 시

DB Connection이 안된다.

 

applicaion.yml 파일 URL을 localhost가 아니라 Host의 DB를 바라볼 수 있도록

url: jdbc:mariadb://host.docker.internal:3306/spring_order 로 변경

 

URL 변경 후 재 빌드

 

시간이 지나도 서버가 정상적으로 동작하는 것을 확인 가능하다.

 


ordering-fronted docker build(프론트 엔드 서버)

 

Dockerfile

FROM node:20

WORKDIR /app

COPY . .

RUN npm install

ENTRYPOINT [ "npm", "run" , "serve"]

 

.dockerignore

node_modules
dist

 

1. docker build -t order-fronted:v1 .

2. docker run -d -p 8081:8081 order-fronted:v1

3. docker ps

 

build

docker build -t order-fronted:v1 .

 

run

docker run -d -p 8081:8081 order-fronted:v1

'Cloud > AWS' 카테고리의 다른 글

Docker2_2024_03_04  (1) 2024.03.05
AWS 배포4_Git action_2024-02-28  (0) 2024.03.05
AWS 배포3_Git action_2024-02-27  (0) 2024.02.27
AWS 배포2_2024-02-27  (0) 2024.02.27
AWS 배포1_2024-02-26  (0) 2024.02.27