Docker-compose 커맨드

version : docker compose 버전(3, 3.9 이렇게 씀)
-> 원래 최상단에 쓰이던 건데 이제 필요 없다고 함! (docker 2.25 이상부터)

services: 서비스를 Docker Engine으로 불러오는데, 관리 명칭을 jenkins로 함
container name : 컨테이너 네임
image : 이미지 사용할 거
user : 작성 안 하면 디폴트는 jenkins로 잡힘. jenkins는 mkdir 권한이 있는 계정으로 설정해줘야 함. "${UID} : ${GID}" workspace에서 빌드를 할 때 mkdir 을 해서 jar 파일을 만들 수 있어야 하는데 root 권한이 없으면 mkdir 을 못해서 파일을 못 만든다. 그렇기 때문에 user를 mkdir 권한이 있는 계정으로 줘야 한다!
restart : 재시작 조건
ports : 외부 리눅스 방화벽에 공유할 포트 : 내부 포트 (방화벽 열려 있어야 연결 되나?)
volumes : container 내부 파일 외부 공유 설정 ex) jenkins_home : /home/ubuntu/jenkins -> 리눅스 디렉토리 마운트가 일어남. jenkins_home 디렉토리 내용이 /home/ubuntu/jenkins 에 그대로 들어감
-> 남발하면 보안상 좋지 않다. 환경변수나 특정 파일들을 넣어주고 마운트해서 적용할 수 있음
networks : 도커 네트워크를 쓰겠다고 명시
external : 앞어 networks 를 쓴다고 했으면 external : true 라고 했을 때 기존에 만든 dockernetwork를 그대로 쓴다는 의미 .만약 false 가 되면 네트워크가 하나 만들어짐

| Depth | Command | 의미 설명 |
|
-- |

-- |

Docker 네트워크

백엔드에서 db로 접근할 때 도메인:3306으로 mysql 가려면 nginx 거쳐서 방화벽 열려 있는 3306으로 들어가서 mysql로 가야했음
도커 네트워크를 사용하면 EC2 내부에서 이동할 수 있다! -> 보안적으로 유리하고 안정적임
적극적으로 써라~
같은 네트워크 대역대를 쓴다는 선언이다