공부의 순서
// 공부의 순서
1. 파이썬 (언어)
2. 자료구조 (알고리즘) - 6개월
3. 운영체제, 네트워크
4. 자바
5. 네트워크 프로그래밍 (소켓/프로토콜)
5-1. 단방향/반이중/전이중
6. RDB
7. 서블릿
8. 스프링부트 (Rest)
9. HTML/CSS/Javascript
10. SSR 프로젝트
11. RESTAPI 전환 (보안 - 해시, JWT, RSA)
12. 리눅스 (Shell)
13. Docker
14. AWS(클라우드 - 공부 - VPC,LB,IAM.. 등등)
15. 노가다 배포 (EC2) - 고생
16. 도커 배포 (EC2) - 고생
17. 오케스트라 (쿠버네티스)
JavaScript
복사
docker ps로 현재 docker이미지 상태를 알 수 있다.
docker ps
JavaScript
복사
아래 명령어를 사용해서 tomcat이 없으면 자동으로 다운로드 한다.
docker run -d -p 9000:8080 tomcat:10
JavaScript
복사
docker ps 해보면 아래처럼 뜨게 된다.
포트 포워딩 된걸 확인할 수 있다.
커서를 켜서 도커 연습세팅해보자.
도커 실행해보기
docker exec -it 0ae3 bash
JavaScript
복사
위의 명령어로 실행할 수 있다.
Tomcat 디렉토리 구조
// 리스트 명령어이고 내부 구조를 확인할 수 있다.
ls
JavaScript
복사
Tomact 디렉토리 구조 설명
webapp.dist 디렉토리 구조
// webapps.dist 디렉토리로 이동
// 설명 : 기본적으로 제공되는 웹 애플리케이션들이 위치하는 디렉토리이기 때문에,
// 이 디렉토리로 이동하여 기본 웹 애플리케이션을 확인하거나 수정할 수 있다.
cd webapps.dist
// 이동후 ls명령어 실행 : 내부 구조를 확인한다.
ls
JavaScript
복사
webapp.dist 디렉토리 구조 설명
webapps폴더에 ROOT 디렉토리 만들기
//ROOT 폴더를 만들 때는 mkdir명령어를 사용한다.
mkdir ROOT
JavaScript
복사
//ROOT 폴더 내에서 vi 사용해서 실행해보자.
vi index.html
JavaScript
복사
ROOT폴더 내에서 vi명령어를 실행하였더니 아무것도 나오지 않았다.
apt-get으로 메뉴판을 업데이트 해야된다.
메뉴판 업데이트
//메뉴판 업데이트
apt-get update
JavaScript
복사
근데 이렇게 해도 이거 컨테이너가 꺼지면 다 사라진다.
조심!!!
// 나노설치
apt-get install nano
JavaScript
복사
나노는 메모장 같은거
index.html 작성
nano index.html
JavaScript
복사
실행해서 들어가보면, 위처럼 화면이 나온다.
ctrl + X → Y 엔터 하면 index.html이 저장이 되고,
ls 명령어로 확인해보면 ROOT폴더 옆에 파일이 생성 된게 보인다.
근데 사실 이 index.html을 ROOT폴더 안에 만들었어야 했는데, 잘못했다 ㅠ
mv 명령어를 사용하여 index.html ROOT폴더로 옮기겠다.
mv /usr/local/tomcat/webapps/index.html /usr/local/tomcat/webapps/ROOT/
JavaScript
복사
그리고 localhost:9000으로 접속하면 포트포워딩이 되어 index.html을 찾는다.
그래서 위 화면 처럼 출력이 된다.

주의 할 점

이미지는 컨테이너가 꺼지면 다 날라가니까 꼭 주의 하도록 하자.
저장하고 싶다면 커밋을 해야된다.
커밋하기 - 일단 bash에서 빠져나와야된다.
ctrl + P / ctrl + Q 하면 bash를 종료하는 것이 아니라 잠시 빠져나온다.
docker ps 명령어로 해당 이미지의 containerID를 찾는다.
여기서는 0ae3
docker commit 0ae3 chugue85/tomcat:10
JavaScript
복사
위의 커밋 명령어를 사용해서 이미지 컨테이너ID / 나의이름 / 태그 를 조합해서 명령어를 실행한다.
그럼 이렇게 도커에서 확인이 가능하다.
docker images로도 확인이 가능하다.
이미지를 지워보자.
이렇게 지울수 있는데, 이걸 지우고 다시 들어가면 아무것도 실행할 수 없다.
다 날라갔기 때문에
다시 들어갔을 때 확인이 될까?? 다시 실행해보자.
다시 실행해보면??
위 처럼 아무것도 남아있지 않다.
그러므로 작업하다가 커밋하는 것이 매우 중요하다.
이미지 삭제 & 확인
docker ps -a 는 아까 날라간 이미지도 다 있는데,
이걸 다 지울려면 GUI로 다 삭제하면 된다.
이렇게 지우고 docker ps를 해보면 아무것도 나오지 않을 것이다.
이미지들 확인
docker images
JavaScript
복사
docker images로 최근 사용한 이미지들을 볼 수 있다.
이미지를 커밋 하는 방법
docker commit 0ae3 stephen85-tomcat10
JavaScript
복사
이미지를 구우면서 해시를 만들어 준다.
도커 이미지스로 확인이 가능하다.
내가 구운 이미지 다시 실행
docker run -d -p 8000:8080 stephen85-tomcat10
JavaScript
복사
내가 만든 이미지를 실행해보자.
명령어 설명
실행하면 아래 해쉬도 같이 반환한다.
이렇게 구운 이미지가 실행이 가능하다.
- 근데 이게 다른 곳에서 실행이 될까??? 안된다.
- 하지만 도커허브에 업로드 해놓으면 어디서든지 이게 실행이 가능하다.
- 도커허브는 깃허브같은 곳이라서, 만약 다른 곳이 도커프로그램이 있으면 이미지를 다운받아서 실행할 수 있다.
쿠버네티스는 도커허브를 쓰고, AWS는 ECR을 사용한다.
도커 허브에 push 하기
커밋먼저
docker commit 1560 <도커허브ID>/<앱이름>:태그
JavaScript
복사
커밋을 할 때는 꼭 자기 도커허브ID/앱이름:태그 컨벤션을 지켜주자.
docker images로 push 하고 싶은 이미지 이름을 확인한다.
docker push stephen85/tomcat:10
JavaScript
복사
도커를 허브로 푸시할 수 있다.
Denied 메시지를 받았을때
정상적으로 푸시가 되었다면 Repositories에서 확인이 가능하다.
그리고 커밋컨벤션을 잘 지켜줘야지 충돌이 나지 않으니 꼭 주의 하자!!
이제 이건 어디서든 내려 받을 수 있다.
이게 왜 좋냐????
이제 환경이 달라도 해당 프로그램을 실행할 수 있다.
요약 정리
1. docker commit 컨테이너ID 자기아이디/앱이름:태그
2. docker push 자기아이디/앱이름:태그
JavaScript
복사