241231 에이콘 아카데미 수업에 기반하여 작성되었음을 알립니다.
도커 데스크탑 실습
이미지 업로드하기 (파워쉘 사용)
실행, 중지, 삭제 모두 가능
nodejs 환경에서 웹서버 실행하기
my2 디렉토리를 만들고 이 안에서 작업
도커파일 만들기
컨테이너 이미지로 빌드
우분투 환경에서 java 설치하기
my3 디렉토리를 만들고 이 안에서 작업
Dockerfile 작성 --------------
$ nano Dockerfile
# 1. 최신 우분투 이미지 사용
FROM ubuntu:latest
# 2. 기본 패키지 업데이트 및 필요한 의존성 설치
RUN apt-get update && apt-get install -y \
wget \
curl \
software-properties-common \
gnupg2 \
&& apt-get clean
# 3. OpenJDK 21 설치
RUN add-apt-repository ppa:openjdk-r/ppa && \
apt-get update && \
apt-get install -y openjdk-21-jdk && \
apt-get clean
# 4. Java 환경변수 설정
ENV JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
ENV PATH="$JAVA_HOME/bin:$PATH"
# 5. Java 버전 확인 (빌드 시 확인용, 실행 시엔 출력되지 않음)
RUN java -version
# 6. 기본 명령 설정 (우분투 쉘로 진입)
CMD ["/bin/bash"]
이미지 빌드
$ docker build -t ubuntu-java21 .
컨테이너 실행
$ docker run -it ubuntu-java21
Java 설치 확인
# java -version
Exited된 컨테이너를 다시 시작하려면
$ docker start -i 6f2802dde9d2
아파치 서버
$ docker exec apache1 ls /usr/local/apache2/htdocs/
$ docker exec apache1 cat /usr/local/apache2/htdocs/index.html
$ docker cp abc.html apache1:/usr/local/apache2/htdocs/
외부에서 html을 만들어 넣어주기
nice.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>환영해용</h1>
외부에서 html 작성 후 http server로 전송한 파일이야
</body>
</html>
VMware에 work 폴더 생성 후 복붙
유저에만 권한이 있는 모습, 그룹과 아더에 권한 설정해줘야 read, write 가능
외부에서 파일을 가져왔을 때는 기본적으로 해당 유저에게만 리드, 라이트 가능 그래서 권한 설정이 필수이다.
아파치 서버 실행
$ docker cp /home/user/work/nice.html apache1:/usr/local/apache2/htdocs/
톰캣 도커 이미지 설치
ROOT가 없다. 원래는 있어야함!
ROOT 만들어주기
나노가 없음 설치해줘야함
apt update
apt install nano
윈도우에서 우분투ip 타고 들어가도 보임!
도커 저장소 push
도커는 환경만 올라감! 소스 코드나 DB 데이터는 백업을 받아두고 환경만 올리는 것
둘째 : 대상 컨테이너로 새로운 이미지 만드는 방법은 두 가지
a : container를 commit
b : Dockerfile을 만들어 build
이번 실습에서는 commit을 사용해 보기로 하자.
형식) docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
CONTAINER: 변경 사항을 커밋할 컨테이너 ID 또는 이름.
REPOSITORY: 생성된 이미지의 이름.
TAG: 생성된 이미지의 태그(생략 시 기본값은 latest).
$ docker commit 6f2802dde9d2 ubuntu-javamy
$ docker images
작동 확인
컨테이너 다시 삭제
푸쉬
$ docker push yyummmmmmmm/ubuntu-javamy:1.0
다시 받아보자!
기존 이미지 삭제
태그 삭제
레포지토리 삭제
✨ 실무에서 많은 컨테이너를 관리하기 위해 쿠버네티스라는 툴을 사용해야한다.
'Study > Acorn' 카테고리의 다른 글
250103 MongoDB (Java - CRUD, 동적인 칼럼 처리) (0) | 2025.01.03 |
---|---|
250102 MongoDB (개념, 설치, 기본 CRUD, Java 연동) (0) | 2025.01.02 |
241230 도커 (설치, 기본명령어) (0) | 2024.12.30 |
241227 인증/인가(Role) (0) | 2024.12.27 |
241226 인증/인가 (JWT, 권한) (0) | 2024.12.26 |