티스토리 뷰
Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼이다.
Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있으며 docker가 제공하는 일관된 명령어로 서버를 관리할 수 있기 때문이다.
◎ docker 명령어
docker run -d -p {인스턴스 포트번호}:{도커 포트번호} --name {컨테이너 이름} -e {키=값} {image}
-d
- 컨테이너가 실행되고 있는 화면에서 -d (데몬) 옵션을 추가해 실행하면 백그라운드에서 실행되도록 할 수 있다.
- 도커 데몬이란? 도커 엔진은 외부에서 API 입력을 받아 도커 엔진의 기능을 수행하는데, 도커 프로세스가 실행되어 서버로서 입력을 받을 준비가 된 상태를 도커 데몬이라 한다.
-p
- 도커를 실행시키고 있는 호스트의 포트와 도커 컨테이너의 포트를 매핑하는 옵션이다.
- 앞 번호가 도커를 실행시키고 있는 인스턴스의 포트번호이고, 뒷 번호가 컨테이너의 포트 번호이다.
-- name
- 이 옵션을 통해 컨테이너의 이름을 설정해 줄 수 있다.
- 컨테이너를 시작, 중지, 삭제할때 컨테이너 id가 아닌 설정된 이름으로 명령을 실행 시킬 수 있다.
-e
- 환경변수를 설정하는 옵션이다.
- 환경변수는 실행할 이미지마다 다르고 문서에서 제공해주니 참고 할 것.
- 키 = 값 형태로 설정할 수 있다. mysql 환경변수 예시 (Environment Variables 참고)
컨테이너 시작
docker start {name 또는 container id}
컨테이너 중지
docker stop {name 또는 container id}
컨테이너 삭제
docker rm {name 또는 container id}
도커 프로세스 확인(실행되고 있는 컨테이너를 확인)
docker ps
모든 도커 프로세스 확인(중지되어 있는 컨테이너도 확인)
docker ps -all
환경 변수 변경 방법
docker stop {name 또는 container id}
// 컨테이너를 중지한 후 도커 환경 변수를 수정한 후 다시 run
docker run -d -p {인스턴스 포트번호}:{도커 포트번호} --name {컨테이너 이름} -e {키=값} {image}
// 환경 변수를 수정한 후 다시 run
◎ docker 설치
EC2에 접속하여 관리자 권한으로 변경한다.
sudo su -
Docker 홈페이지에서도 받을 수 있지만, 도커 설치 스크립트를 github에서 받아서 스크립트를 실행한다.
# root 디렉토리에 git 폴더를 만들어주고, 폴더 내로 들어간다.
mkdir git
cd git
# github에서 clone해서 받아준다.
git clone https://github.com/Kyeongrok/docker_minikube_kubectl_install
------------------------------------------
~# ll
total 28
drwx------ 5 root root 4096 Oct 11 10:51 ./
drwxr-xr-x 19 root root 4096 Oct 11 08:31 ../
-rw-r--r-- 1 root root 3106 Oct 15 2021 .bashrc
-rw-r--r-- 1 root root 161 Jul 9 2019 .profile
drwx------ 2 root root 4096 Oct 11 08:31 .ssh/
drwxr-xr-x 3 root root 4096 Oct 11 10:51 docker_minikube_kubectl_install/
drwx------ 4 root root 4096 Oct 11 08:31 snap/
# ll로 받아졌는지 확인 후 폴더 내로 들어간다.
ll
cd docker_minikube_kubectl_install/
파일이 존재하는지 확인한 후 터미널에 아래 명령어 입력하고 도커를 설치한다.
sh docker_install.sh
설치 로딩이 끝나면, docker를 입력해본다. docker 명령어가 쭉 출력된다면, docker를 띄우는데 성공한것이다.
docker
◎ docker nginx 띄워보기
Nginx란 간단하게 말하면 가벼운 고성능 웹서버로 높은 트래픽 처리를 위해 만들어졌다.
클라이언트로부터 요청을 받았을 때 요청에 맞는 정적 파일을 응답해주는 HTTP Web Server로 활용되기도 하고, Reverse Proxy Server로 활용하여 WAS 서버의 부하를 줄일 수 있는 로드 밸런서로 활용되기도 한다.
Apache의 경우 접속마다 Process 또는 Thread를 생성하는 구조로, 다수가 동시접속을 하면 그 만큼 생성비용이 든다. 하지만 nginx는 한 개 또는 고정된 프로세스만 생성하고, 그 프로세스 내에서 비동기 방식으로 효육적으로 작업을 처리한다.
터미널에 아래 명령어를 입력 한다.
-p 80:80 : 외부에서 Docker container로 포트포워딩을 해주어야 한다.
[호스트의 포트:컨테이너 포트] (80은 웹 서버 기본포트이다)
docker run -p 80:80 nginx
인터넷 창에 퍼블릭 ipv4 dns 주소:80 입력해서 아래 화면과 같이 뜨면 설치가 잘된 것이다.
nginx창이 잘 뜨면 터미널은 Ctrl + C 로 빠져나와서 다음 명령어로 데몬으로 MySQL을 3306포트에 실행한다.
(패스워드에는 원하는 패스워드를 입력)
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql
docker의 daemon으로 mysql이 잘 실행되는지 확인하기 위해 도커 컨테이너 목록을 확인한다.
docker ps
'Docker' 카테고리의 다른 글
[Docker] Dockerfile 분석해보기 (0) | 2023.05.23 |
---|---|
[Build] Docker 빌드 중 CPU 이슈 (0) | 2023.03.14 |
- Total
- Today
- Yesterday
- alert
- System.out.println
- Scanner 시간초과
- 출력 메소드
- I/O
- 변수
- alert focus
- focus 작동 안하는 경우
- 출력 스트림
- MsgBox순서
- dataGridView
- 자바 출력 속도
- 변수의 종류
- BufferdReader 클래스
- 자바 입출력
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |