docker 명령어 정리
run 실행시 옵션
- run은 생성하고 시작하는 명령어 (=생성과 시작을 동시에!)
- 생성은 했지만 시작이 되지 않는 경우
- ps로는 보이지만, ps -a로 안보임 -> run 옵션 확인
- 컨테이너 볼륨 공유에 대하셔 privileged를 주지 않았거나,
- -p옵션에 대하여 중복되는 포트를 할당해줬거나
- 단일 어플리케이션을 위한 컨테이너를 경우 -e 옵션을 주지 않으면 컨테이너 생성 안됨.
run 옵션 형식
docker run {옵션들, 복수 사용 가능} {이미지 이름} {컨테이너 실행 시 입력될 커맨드 라인} {기타 인자들}
주로 쓰는옵션
1) 컨테이너 자원 할당
-c, --cpu-share
cpu스케쥴링에서 컨테이너가 얼마나 많은 부분을 차지 할지 나타내는 것.
기본값은 1024
-m
메모리 제한
바이트, 키로바이트, 메가바이트 기가 바이트 순으로 넣을 수 있으며 컨테이너가 해당 메모리 제한을 넘어가게 되면 컨테이너가 종료된다.
--cpuset
사용하지 않는 것을 추천
인자를 1,2,4 또는 1과 같이 준다, 해당 cpu를 전부 다 점유해 버린다.
개인적으로 사용하는 컨테이너라면 상관 없지만, 서비스에는 적합하지 않다.
2) interacive하게 컨테이너 사용
--name
컨테이너 이름
-i
interacive라는 뜻
컨테이너와 상호적으로 주고 받고 하겠다
입력에 대한 출력을 나타내는 말.
-t
tty라는 뜻
tty(터미널과 동일한 의미)를 사용하겠다.
즉 터미널과 비슷한 환경을 조성해줌.
3) 도커의 디렉토리 공유
- 컨테이너는 호스트 OS와 분리되어야한다는 도커의 철학!이 있지만,
- 필요에 따라 호스트 OS의 파일을 공유해서 사용할 수 있으며, 다른 컨테이너들끼리 파일을 공유하며 효율적으로 작업이 가능할때도 있다.
--mount
--volume 옵션과 동일함.
docker document를 참고하면 --volume 옵션보다 --mount를 사용하길 권장한다.
volumes 관련 공식문서 사이트 : https://docs.docker.com/storage/volumes/
호스트 OS의 디렉토리와 컨테이너 내부 디렉토리를 공유 시킴.
사용예시
--mount type=bind,source=/home/vagrant/nginx/html,target=/usr/share/nginx/html
--volumes-from
컨테이너들 끼리의 디렉토리공유.
--privileged
호스트 OS에 접근할 수 있도록 권한을 주는 옵션
touch: cannot touch 'log': Permmission denied
4) 네트워크 설정
- 외부와 연결하는 수단인 네트워크 옵션
- 컨테이너 안에서 서비스를 구동하고, 외부에서 그 서비스에 접근하려고 한다면 컨테이너에 -p옵션을 주는 것이 바람직.
- IP와 포트로 그 컨테이너 안에 서비스로 접속할수 있기 때문.
-p
형식 : {연결할 호스트의 포트 번호}:{컨테이너의 포트 번호}
컨테이너 포트를 개방한 뒤, 호스트 포트와 연결한다.
-P, --publish-all
임의의 포트를 컨테이너에 할당
-expose
컨테이너 포트만 개방한다.외부와 연결하지 않고 포트만 개방.
컨테이너들 끼리의 접근할때 사용
--add-host
컨테이너 내부의 /etc/hosts에 호스트 이름과 IP 주소를 설정해준다.
(없으면 임의의 ip address 할당)
--dns
DNS 서버의 IP 주소를 설정해준다
--mac-address
컨테이너 MAC 주소를 설정해준다
--net
컨테이너 네트워크 설정(bridge, none, container:, host)
-h ,-- hostname
컨테이너 호스트 이름 설정해준다
--link
다른 컨테이너에서 접근시 이름을 설정
5) 기타 옵션들
-d, --detach
컨테이너를 생성하고 백그라운드에서 실행시킨다.
이 옵션을 주지 않으면 포어그라운드에서 실행한다.
-u, -user
사용자명을 입력
--restart
커맨드 실행 결과에 따라서 재기동을 설정 (no, on-failure(횟수), always)
--rm
커맨드 실행 완료 후 컨테이너를 자동으로 삭제시키는 옵션
참고 사이트
https://www.leafcats.com/191
https://blog.naver.com/alice_k106/220306793372
'Programming > Server' 카테고리의 다른 글
[Docker] 특정 ip 할당 (0) | 2020.04.17 |
---|---|
[Youtube] 네이버 클라우드 플랫폼은 어디에 컨테이너를 쓸까? 2/3 (0) | 2020.04.17 |
[Youtube] 네이버 클라우드 플랫폼은 어디에 컨테이너를 쓸까? 1/3 (0) | 2020.04.16 |