Docker - 4. Container & Command

최창우·2022년 11월 7일
0

Docker

목록 보기
4/7
post-thumbnail

📌목차

1. 컨테이너 생성
2. 컨테이너 관련 명령어
3. 이미지 관련 명령어

📕 컨테이너 생성

docker run [Options...] [Image] [command] [매개변수]

📖 options

-d

  • detached mode
  • 백그라운드 모드라 부름
  • 프로세스가 종료되어도 컨테이너 종료X

-i

  • interactive (상호적인) 의 줄임말
  • 컨테이너 내부에서 일어나는 일을 사용자에게 보여주겠다
  • 보통 이 옵션을 사용하여 Bash에 명령을 입력

-t

  • tty 모드 사용을 의미
  • 여기서 TTY(teletypewriter)란 콘솔/터미널 창을 의미
  • 컨테이너 내부를 터미널과 비슷한 환경을 조성하는 역할을 함
  • Bash를 사용하려면 이 옵션 필수
  • 이 옵션을 설정하지 않으면 명령을 입력할 순 있지만, 셀에 표시되지않음

--name

  • 컨테이너 이름을 설정

-p

  • 호스트와 컨테이너의 포트를 연결 ( 포트포워딩 )
  • publish의 줄임말
  • <호스트 포트>:<컨테이너 포트>

--gpus

  • 컨테이너에서 호스트의 NVIDIA GPU를 사용할 수 있도록 설정
  • gpu를 모두 사용하거나 지정해서 사용가능
# gpu 전부 사용
--gpus all

# gpu 하나만 사용
--gpus="1"

# gpu 0,1 번만 사용
--gpus '"device=0,1"'

-v

  • volume 의 줄임말
  • 호스트와 컨테이너의 디렉토리 연결
  • 파일을 컨테이너에 저장하지않고 호스트에 바로 저장 (일명 '마운트')
  • 참고 : tensorflow 기반의 컨테이너는 기본폴더가 /tf 로 생김
# -v <호스트경로>:<컨테이너경로>
-v /home/changwoo:/tf

예시 ) 아래 그림처럼 로컬에서 파일목록과 -v 설정후 생성된 컨테이너의 파일목록이 동일하게됨을 알 수 있다.

--restart

  • 컨테이너 종료시 재시작 가능 설정

--rm

  • 프로세스 종료시 컨테이너 자동 제거
  • 컨테이너를 일회성으로 사용할때 지정해주는 설정

📖 컨테이너 생성 예시

docker run -it -d --name="tfccw" -p 10055:8888 -p 10056:5000 -gpus="1" -v /home/changwoo:/tf tensorflow/tensorflow:2.4.0-gpu-jupyter
docker run -it -d --name="ubuntu_20.04" ubuntu:20.04
docker run -it -d --nmae="python3.7" python:3.7

📖 컨테이너 생성 결과

📕 컨테이너 관련 명령어

기본

docker ps : 실행중인 컨테이너 목록 확인
docker ps -a : 전체 컨테이너 목록 확인
docker start <컨테이너명> : 컨테이너 시작
docker stop <컨테이너명> : 컨테이너 정지
docker rm <컨테이너명> : 컨테이너 삭제

내가 잘 몰랐던것!

docker inspect <컨테이너명> : 컨테이너 정보확인
docker commit <컨테이너명> <생성할 이미지명> : 컨테이너를 이미지로 커밋
docker logs <컨테이너명> : 컨테이너의 log 확인
docker rename <컨테이너명> <변경할 컨테이너명> : 컨테이너 이름 변경
docker restart <컨테이너명> : 컨테이너 재시작
docker top <컨테이너명> : 컨테이너의 실행중인 프로세스 표시

추가

  • 호스트에서 컨테이너로 파일이동
    - docker cp <호스트 복사할 파일 경로> <컨테이너명>:<컨테이너 내부 붙여 넣기할 경로>
  • 컨테이너에서 호스트로 파일이동
    - docker cp <컨테이너명>:<컨테이너 내부 복사할 파일 경로> <호스트 붙여 넣기할 경로>

📕 이미지 관련 명령어

기본

docker images : 이미지 조회
docker rmi [이미지ID] 또는 [레포:태그] : 이미지 삭제
docker rmi -f [이미지ID] 또는 [레포:태그] : 이미지 삭제 & 컨테이너 강제 삭제
docker search [이미지명] : 도커허브에서 이미지 검색하여 목록 보여줌
docker pull [이미지명]:[버전명] : 이미지 가져옴 (버전입력안할시 제일 최근버전 로드)

  • starts : 즐겨찾기 수
  • official : 공식 이미지인가?
  • automated : dockerfile을 통해서 자동 빌드된 이미지인가?

📚 Reference

https://www.leafcats.com/190

profile
유능한 개발자가 되고 싶은 헬린이

0개의 댓글