학습주제
docker compose
학습내용
다수의 컨테이너로 구성된 소프트웨어를
쉽게 관리하고 실행해주는 툴
명령을 정리
docker build: 애플칩에선 --platform=linux/amd64, -t 로 이미지 이름
docker images, image ls
docker rmi 이미지 이름, id
docker image rm
도커 허브관련
다운 받을 때 대상 이미지가 오피셜 이미지면 네임스페이스 없이 이미지아이디만, 예를들어 파이썬, 우분투 등
컨테이너 관련
뒤에서 다이어그램을 가지고 라이프 사이클을 보자.
컨테이너 로그
docker logs -f 컨테이너이름
cmd 키워드로 처음 실행될 명령어. 엔트리포인트도 썼었음.
다양한 스탠다드아웃풋 메세지들을 볼 수 있었음.
로그가 생기는 족족 f를 쓰면 리얼타임으로 보여줌.
없으면 지금까지 뿌려진 로그가 보일 것임.
--tail 100을 컨테이너 이름이면, 가장 최근 100개 로그 보여줌. 굉장히 유용하게 쓰일 수 있음. mysql root 패스워드 알 때 썼었음.
run 주어진 이미지 처음 실행
exec는 이미 실행 컨테이너에게 명령어를 지정해줌.
컨테이너 안에있는 hosts파일의 내용을 출력하는 명령을 실행시켰음.
그 결과가 프린트되고 끝남.
혹은 인터렉티브하게 하고 싶으면 -it 컨테이너id sh 형태로 쓰면 됨.
그냥 run 하면 끝날때까지 기다리게 됨.
안기다리고 계속 돌리고 싶으면 -d 써주면 됨 (서버같은거 돌릴 때 괜찮은거 같음)
다시 attach, 앞에서 돌게하고싶으면.
컨테이너 아이디 다 입력 안해도 앞에 4자리 정도만 입력해도 찾아줌.
이미지를 받은 상황이거나, 이미지를 받으면서 특정 이미지를 컨테이너로 올릴 때 run
러닝모드를 멈추면 포즈, 돌리고싶으면 언포즈.
ctrl c를 눌러 멈추면 stop으로 멈출수 있음. 버그가 있어도 stopped 컨테이너는 실행은 안되어있지만 메모리에서 내려간게 아님. 다만 멈춰져 있을 뿐임. docker ps를 하면 러닝 상태만 보여주는데, -a를 하면 멈춘걸 보여줌.
완전히 없애고 싶으면 -rm을 써주면, 삭제상태로 돌입.
docker create은 잘 안씀. 컨테이너 만들어넣고, start로 상태를 변환하는것도 있음.
restart를 하면 컨테이너를 다시 시작하는게 가능함.
1. 데브옵스 팀
2. 프로덕션 배포는 CD
3. pip3 install -r requirements.txt
p 옵션. 호스트포트:컨테이너포트
v 옵션은 볼륨
다수의 개발자가 공동개발 가능한건 SVC도 마찬가지
flake8
YML 파일은 프로그래밍 언어로 파싱 가능
워크플로우 트리거 이벤트 아닌건 delete