docker container run [옵션] 이미지명[:태그명] [인수]
옵션 | 설명 |
---|---|
--attach, -a | 표준 입력(STDIN), 표준 출력(STDOUT), 표준 오류 출력(STDERR)에 어태치한다. |
--cidfile | 컨테이너 ID를 파일로 출력한다. |
--detach, -d | 컨테이너를 생성하고 백그라운드에서 실행한다. |
--interactive, -i | 컨테이너의 표준 입력을 연다. |
--tty, -t | 단말기 디바이스를 사용한다. |
docker container run -it --name "test1" centos /bin/cal
docker container run -it --name "test2" centos /bin/bash
컨테이너를 시작하여 /bin/bash를 실행하면 컨테이너 안에서 보통의 Linux 서버와 똑같은 명령 조작을 할 수 있다.
docker container run [실행 옵션] 이미지명[:태그명] [인수]
옵션 | 설명 |
---|---|
--detach, -d | 백그라운드에서 실행 |
--user, -u | 사용자명을 지정 |
--restart=[no | on-failure | on-failure:횟수n | always | unless-stopped] | 명령의 실행 결과에 따라 재시작을 하는 옵션 |
--rm | 명령 실행 완료 후에 컨테이너를 자동으로 삭제 |
docker container run -d centos /bin/ping localhost
docker pull nginx # nginx 이미지 pull
docker run --name webserver2 nginx:latest
대화식으로 웹서버를 실행시키면 이렇게 터미널 상에서 다른 작업을 할 수 없다. control+c로 종료시키고 이번엔 -d 옵션을 사용해서 백그라운드로 작업해보자
이렇게 백그라운드로 실행하면 터미널을 계속 사용할 수 있고 docker container ls 명령으로 컨테이너를 실행중인 컨테이너를 확인해 보면 webserver3가 실행중인 것을 확인할 수 있다.
명령의 실행 결과에 따라 컨테이너를 재시작할 때는 --restart 옵션을 지정
설정값 | 설명 |
---|---|
no | 재시작하지 않는다. |
on-failure | 종료 스테이터스가 0이 아닐 때 재시작한다. |
on-failure:횟수n | 종료 스테이터스가 0이 아닐 때 n번 재시작한다. |
always | 항상 재시작한다. |
unless-stopped | 최근 컨테이너가 정지 상태가 아니라면 항상 재시작한다. |
# --restart 옵션
docker run --restart always -d centos:latest sleep 10
# 10초 동안 sleep을 백그라운드로 실행, --restart always로 sleep 10이 계속 반복
docker run --restart on-failure -d centos:latest sleep 10
# 10초 동안 sleep을 백그라운드로 실행 후 exited 됨
docker run --name hello -rm hello-world:latest
# 실행 후 container ls -a로 확인해봐도 찾을 수 없음 명령 실행 후 컨테이너가 자동으로 삭제됨
이 부분은 다음에 포스팅 할 'Docker 컨테이너 네트워크'에서 다루겠습니다. 궁금해도 잠시만 기다려주세요...
컨테이너를 시작할 때 CPU와 메모리의 자원 이용을 제한할 수 있다.
docker container stats
: 컨테이너 자원 사용 정보를 볼 수 있다.
docker container run [자원 옵션] 이미지명[:태그명] [인수]
옵션 | 설명 |
---|---|
--cpu-shares, -c | CPU의 사용 배분(비율) |
--memory, -m | 사용할 메모리를 제한하여 실행(단위는 b, k, m, g 중 하나) |
--volume=[호스트의 디렉토리]:[컨테이너의 디렉토리], -v | 호스트와 컨테이너의 디렉토리를 공유 |
ocker run -dit --rm centos:lateste
docker run -dit --memory 1g --rm centos:latest
docker run -dit --cpu-shares 512 --rm centos:latest
docker container stats --no-stream
docker ps
docker exec elated_elbakyan dd if=/dev/zero of=/dev/null bs=1M
docker exec serene_feynman dd if=/dev/zero of=/dev/null bs=1M
docker exec cranky_pasteur dd if=/dev/zero of=/dev/null bs=1M
docker stats #하면 cpu 부하 되는거 볼 수 있음
docker container rm -f `docker container ls -a --queit`
docker run --rm -dit --name os1 centos:latest
docker run --cpus 0.3 --rm -dit --name os2 centos:latest dd if=/dev/zero of=/dev/null bs=1M #cpu는 내가 쓰고싶은 cpu의 물리적 한계량을 직접 지정 (0.3개 정도만 쓰겠다.)
docker run --cpus 0.1 --rm -dit --name os3 centos:latest dd if=/dev/zero of=/dev/null bs=1M
docker container stats #에서 보면 CPU가 os2 -> 30% , os3 -> 10%정도 사용하고 있음을 볼 수 있음
docker container run [환경설정 옵션] 이미지명[:태그명] [인수]
옵션 | 설명 |
---|---|
--env=[환경변수], -e | 환경변수를 설정한다. |
--env-file=[파일명] | 환경변수를 파일로부터 설정한다. |
--read-only=[true | false] | 컨테이너의 파일 시스템을 읽기 전용으로 만든다. |
--workdir=[패스], -w | 컨테이너의 작업 디렉토리를 지정한다. |
-u, --user=[사용자명] | 사용자명 또는 UID를 지정한다. |
docker run -it -e TEST1=Hello -e TEST2=World --rm centos:latest # 내 맘대로 환경변수 설정
echo $TEST1 # Hello 출력
echo $TEST2 # World 출력
### 환경변수를 파일로 설정해서 사용해보기
cat > env_file
TEST1=Hello
TEST2=World
TEST3=Merong
^C
docker run -it --env-file env_file --rm centos:latest
echo $TEST1 $TEST2 $TEST3
docker container ls [옵션]
옵션 | 설명 |
---|---|
--all, -a | 실행 중/정지 중인 것도 포함하여 모든 컨테이너를 표시 |
--filter, -f | 표시할 컨테이너의 필터링 |
--format | 표시 포맷을 지정 |
--last, -n | 마지막으로 실행된 n건의 컨테이너만 표시 |
--latest, -l | 마지막으로 실행된 컨테이너만 표시 |
--no-trunc | 정보를 생략하지 않고 표시 |
--quiet, -q | 컨테이너 ID만 표시 |
--size, -s | 파일 크기 표시 |
항목 | 설명 |
---|---|
CONTAINER ID | 컨테이너 ID |
IMAGE | 컨테이너의 바탕이 된 이미지 |
COMMAND | 컨테이너 안에서 실행되고 있는 명령 |
CREATED | 컨테이너 작성 후 경과 시간 |
STATUS | 컨테이너의 상태(restarting, running, paused, exited) |
PORTS | 할당된 포트 |
NAMES | 컨테이너 이름 |
docker container stats [컨테이너 식별자]
항목 | 설명 |
---|---|
CONTAINER ID | 컨테이너 식별자 |
NAME | 컨테이너명 |
CPU % | CPU 사용률 |
MEM USAGE/LIMIT | 메모리 사용량/컨테이너에서 사용할 수 있는 메모리 제한 |
MEM % | 메모리 사용률 |
NET I/O | 네트워크 I/O |
BLOCK I/O | 블록 I/O |
PIDS | PID(Windows 컨테이너 제외) |
docker container start [옵션] <컨테이너 식별자> [컨테이너 식별자]
옵션 | 설명 |
---|---|
--attach, -a | 표준 출력, 표준 오류 출력을 연다. |
--interactive, -i | 컨테이너의 표준 입력을 연다. |
docker container stop [옵션] <컨테이너 식별자> [컨테이너 식별자]
옵션 | 설명 |
---|---|
--time, -t | 컨테이너의 정지 시간을 지정(기본값은 10초) |
docker container restart [옵션] <컨테이너 식별자> [컨테이너 식별자]
옵션 | 설명 |
---|---|
--time, -t | 컨테이너의 재시작 시간을 지정(기본값은 10초) |
docker container rm [옵션] <컨테이너 식별자> [컨테이너 식별자]
옵션 | 설명 |
---|---|
--force, -f | 실행 중인 컨테이너를 강제로 삭제 |
--volumes, -v | 할당한 볼륨을 삭제 |
docker container pause <컨테이너 식별자>
docker container unpause <컨테이너 식별자>
안녕하세요 운영자님
인카토스입니다.
먼저, 댓글로 인사를 드리게 된 점 양해 부탁 드립니다.
이렇게 연락 드린 이유는 이번에 저희가 제작한 도커 각티슈케이스 제품 협찬을 제안드리고 싶어서 연락 드렸습니다.
개발자들에게 많은 사랑은 받은 각티슈케이스입니다.
저희 상품 블로그 포스팅이 가능하실지 여쭙고자 연락드렸습니다.
아니면 클리앙,서버포럼, okky,2cpu,그누보드 등 가입되어 있으신 개발자 커뮤니티가 있으시다면 해당 커뮤니티에 아래와 비슷하게 게시글을 올려주실수 있을까요?
클리앙 : https://www.clien.net/service/board/park/17797443
연락드릴수 있는방법이 댓글밖에 보이지 않아 이렇게 먼저 연락드립니다.
협찬제안에 긍정적인 검토 부탁드리고 제안이 마음에 드신다면 하기 메일로 메일주시면 제품 보내드리도록 하겠습니다.
sungjh0726@naver.com
협찬제품 링크 : https://incatos.shop/surl/P/11