도커,쿠버네티스를활용한컨테이너개발실전입문1

김지용·2022년 9월 7일
0

독서

목록 보기
8/11
post-thumbnail

도커 처음부터의 순서

프로젝트 폴더 -> Dockerfile -> 이미지 빌드-> 컨테이너 실행 -> docker-composer.yml -> 간단한 배포(docker-compose up)
도커 이미지를 만들고 컨테이너로 실행 / 해당 컨테이너를 docker-compose.yml로 컨트롤

기본 도커 설정(윈도우, 맥OS)

도커 이미지 가져와서 세팅하기
docker image pull gihyodocker/echo:latest
컨테이너 실행

docker container run -t -p 9000:8080 gihyodocker/echo:latest # host_port:guest_port

도커로 이미지 빌드하기(COPY 할 프로젝트 폴더랑, Dockerfile 작성필요)
docker image build -t 이미지명[:태그명] Dockerfile의_경로
-t 옵션 없이도 빌드 자체는 가능하지만, 이미지명이 없으면 해시값만으로 구별해야해서 번거롭다.
ex)

docker image build -t example/echo:latest .

빌드를 실행하면 베이스 이미지를 내려받고 RUN,COPY 인스터럭션에 지정된 명령이 단계적으로 실행

그냥 단순하게 $ curl http://localhost:9000/ 하면 에러가 난다
도커 컨테이너 내부의 9000포트에 연결하는 명령어기 때문이다.(호스트 포트랑 다른 9000포트)
따라서, 처음 컨테이너 실행시에 -p 옵션으로 포트 포워딩을 해줘야한다.
마치 위의 컨테이너 실행 명령어처럼 말이다.

docker container run -t -p 9000:8080 gihyodocker/echo:latest # host_port:guest_port

그리고 나서 $ curl http://localhost:9000/ 하면 잘 수행된다.

도커이미지

  • 도커 컨테이너를 만들기 위한 템플릿

docker search --limit 5 mysql 도커허브 레파지토리에 있는 이미지를 찾는 명령어도 있다.

도커 이미지를 외부에 공개하기
우선 자신 혹은 소속기관이 소유한 레포지토리에만 이미지를 올릴 수 있기때문에
`docker image tag example/echo:latest ecec1023/echo:latest' 처럼
내 레포지토리 태그명으로 먼저 바꿔준다.

'docker image push ecec1023/echo:latest' 명령어를 통해 해당 이미지를 푸쉬한다.
공개 레파지토리에 올릴 시 등록할 이미지나 Dockerfile에 패스워드나 API 키 값 같은 민감한 정보가 포함되지 않도록 주의해야한다!

도커 컨테이너의 생애주기(내가 보기엔 상태에 대한 정의)
1. 실행 중 상태
2. 정지 상태
3. 파기 상태

컨테이너 실행시 옵션
--name [컨테이너명][이미지명]:[태그]
이름 붙인 컨테이너는 개발용으로 비교적 자주 사용되지만 운영상에서는 새로 실행 시 같은 이름을 갖는 기존컨테이너를 먼저 파기해야하기 때문에 잘 쓰지 않는다.

자주쓰이는 도커 옵션
-it : 컨테이너 셸에 들어가서 명령 실행을 위해 쓴다. 유사 터미널 기능 활성화 옵셥 -i 와 -t를 합친 것이다.
--rm : 컨테이너를 파기할 때 쓰는 옵션이다.
-v : 호스트와 컨테이너 간에 디렉터리나 파일을 공유하기 위해 사용하는 옵션이다.

실행중인 컨테이너는
rm -f : -f 옵션을 추가해서 처리 가능하다
docker container run --rm을 사용하면 컨테이너가 실행이 끝나면 자동으로 파기된다.

표준 출력으로 출력된 내용확인
docker container logs -f [컨테이너_id]
f 옵션을 사용하면 새로 출력되는 표준출력 내용을 계속 보여준다.

실행중인 컨테이너에서 명령 실행하기(exec 옵션)
docker container exec [options] 컨테이너id또는컨테이너명 컨테이너에서실행할_명령

ex)
docker container exec -it mysql-digitalship(컨테이너이름) sh
pwd
>>>/app

docker container cp명령어를 통해 호스트 컨테이너간 파일 복사 가능

docker container prune
실행 중이지 않은 모든 컨테이너 파일 삭제
docker image prune
실행 중이지 않은 모든 이미지 파일 삭제
docker system prune
사용하지 않는 도커이미지 및 컨테이너, 볼륨, 네트워크 등 모든 도커 리소스를 일괄적으로 삭제

docker container stats [options][대상_컨테이너ID....]
CPU 메모리 등의 사용현황을 알려준다.

docker-compose
docker-compose up (백이 아닌 포어그라운드로 실행)
docker-compose up --build : 이미지 수정 시 꼭 빌드 옵션을 추가해서 도커컴포즈 할 것!

~90p

profile
김죵입니당 ^^

0개의 댓글