Cohe
Docker 본문
728x90
반응형
- Backend Dockerfile 만들기 위한 순서
- 위의 것 가져오기~!
user1@myserver01:~/backend-test-cicd-main$ **docker run -it ubuntu:22.04**
root@2b4e5d5e3b5a:/# **apt-get update && apt-get install openjdk-17-jdk
=> 도커에 자바가 설치되어 있지 않으니 자바를 설치해준다~!**
- 빌드파일을 복사해야 한다 (배포할 파일이 필요하기 때문)
- 빌드파일이 없어!! → 만드세용 (명령어 :
sh ./gradlew build
)
- 빌드파일이 없어!! → 만드세용 (명령어 :
- ssh가 필요하다 (다운받으시오)
root@2b4e5d5e3b5a:/# **apt-get install ssh -y**
- 복사해야 한다
- 도커 이미지 내에서 배포파일을 넣고 실행시키기 위해서 복사한다 (이름은 app.jar)
root@2b4e5d5e3b5a:/# **scp user1@192.168.15.101:~/backend-test-cicd-main/build/libs/codepipeline-0.0.1-SNAPSHOT.jar ./app.jar**
- 실행한다
java -jar app.jar
- 나가서 Dockerfile을 만든다 (위치는 프로젝트 root에)
FROM ubuntu:22.04
# java 설치
RUN apt-get update && apt-get install -y openjdk-17-jdk
# 실행 작업 위치.. /app 디렉터리가 기본 작업 위치
WORKDIR /app
COPY ./build/libs/codepipeline-0.0.1-SNAPSHOT.jar ./app.jar
# 도커 내부에서 외부로 전달할 포트번호
EXPOSE 5000
# 도커 이미지 실행시 구동할 명령어
CMD [ "java", "-jar", "app.jar" ]
- 도커 실행
- 이미 한 차례 실행을 했었더라면 빠르다 → 캐시로 저장되는 편~
- big은.. 왕 큰 이미지
user1@myserver01:~/backend-test-cicd-main$ **docker build -t backend0808:big .**
- 도커 실행 2
- nat network 포트포워드 설정하기
- -d 는 뭐였더라 못들음
- -p 는 포트 번호 설정 host:docker내 포트번호
user1@myserver01:~/backend-test-cicd-main$ **docker run -d -p 5000:5000 backend0808:big**
f723a639ccb385acf329173adb4d0845d0881dc91c1b08b52a2e9c569a86c5b4
- 도커 stop
user1@myserver01:~/backend-test-cicd-main$ docker container stop f723a639ccb3
- 최적화하기!! (나는 요기부터 용량 부족해서 못해봄 ㅎㅎ)
FROM openjdk:17.0.2-jdk-slim
# FROM ubuntu:22.04
# java 설치
# RUN apt-get update && apt-get install -y openjdk-17-jdk
# 실행 작업 위치.. /app 디렉터리가 기본 작업 위치
WORKDIR /app
COPY ./build/libs/codepipeline-0.0.1-SNAPSHOT.jar ./app.jar
# 도커 내부에서 외부로 전달할 포트번호
EXPOSE 5000
# 도커 이미지 실행시 구동할 명령어
CMD [ "java", "-jar", "app.jar" ]
- 최적화하기 2
FROM amazoncorretto:17-alpine
# FROM ubuntu:22.04
# java 설치
# RUN apt-get update && apt-get install -y openjdk-17-jdk
# 실행 작업 위치.. /app 디렉터리가 기본 작업 위치
WORKDIR /app
COPY ./build/libs/codepipeline-0.0.1-SNAPSHOT.jar ./app.jar
# 도커 내부에서 외부로 전달할 포트번호
EXPOSE 5000
# 도커 이미지 실행시 구동할 명령어
CMD [ "java", "-jar", "app.jar" ]
Docker 이미지 파일 지우기
- 지금 너무 용량 차지가 많아..
- 용량 확인
user1@myserver01:~/backend-test-cicd-main$ **df -h**
- 도커 이미지 확인
user1@myserver01:~/backend-test-cicd-main$ **docker images**
- 지우려고 함 → 실행 중이라고 뜨며 실패했다
user1@myserver01:~/backend-test-cicd-main$ **docker rmi backend-spring:latest**
Error response from daemon: No such image: backend-spring:latest
- grep으로 찾기
user1@myserver01:~/backend-test-cicd-main$ **docker ps -a | grep backend-spring**
- 이미지 파일 삭제 명령어는 아래와 같다 (나는 어제 안해봤어서 낭낭하다)
**docker rmi 이미지
docker rmi backend-spring:파일명**
- 용량이 너무 적어 ㅜㅜㅠ → 확장 명령어임.
sudo lvextend -L +20G /dev/ubuntu-vg/ubuntu-lv
sudo e2fsck -f /dev/ubuntu-vg/ubuntu-lv
sudo resize2fs -f /dev/ubuntu-vg/ubuntu-lv
- 용량 확인용
sudo lvdisplay
sudo fdisk -l
FE 제작하기
- Dockerfile 만들기
# Start your image with a node base image
FROM node:18-alpine
# The /app directory should act as the main application directory
WORKDIR /app
# Copy the app package and package-lock.json file
COPY package*.json ./
# Copy local directories to the current local directory of our docker image (/app)
COPY ./src ./src
COPY ./public ./public
# Install node packages, install serve, build the app, and remove dependencies at the end
RUN npm ci \
&& npm install -g serve \
&& npm run build \
&& rm -fr node_modules
EXPOSE 3000
# Start the app using serve command
CMD [ "serve", "-s", "build" ]
- 실행
docker build -t welcome-to-docker .
docker run -d -p 8088:3000 welcome-to-docker
Docker Compose
- 이미 있는지 확인하는거 :
docker compose
dockercompose
라는 폴더를 만든다!! 그 안으로 들어간다compose.yaml
파일을 만든당
- httpd는 아파치 서버와 비슷한 느낌..이래
user1@myserver01:~/dockercompose$ **docker run --name testhttp -d -p 8000:80 httpd**
- 실행 중인 컨테이너 중지 ⇒
docker container stop 컨테이너 아이디
compose.yaml
파일에서 작업
version: '1'
services:
composehttpd1:
image: httpd
ports:
-8000:80
restart: always
- 실행
docker compose -f compose.yaml up
- 멈춤
docker compose -f compose.yaml down
728x90
반응형
'배포 배우기' 카테고리의 다른 글
쿠버네티스 설치 방법 (0) | 2024.08.13 |
---|---|
Docker 2 (0) | 2024.08.11 |
CI/CD 배포 (0) | 2024.08.05 |
리눅스 쉘 명령어2 (0) | 2024.07.30 |
리눅스의 쉘 스크립트 (0) | 2024.07.29 |