[Docker] Docker 명령어

2022. 12. 13. 22:26·개발/Docker
728x90
반응형

1. attached vs detached

모든 프로세스 확인하기

docker ps -a

다시 시작

docker start 아이디

docker run 과 docker start의 차이

run으로 컨테이너를 실행하면 터미널에 접근할 수 없지만 start는 터미널에 접근할 수 있다.

start는 detached모드가 디폴트이며 run은 attached 모드가 디폴트이기 때문이다.

 

attached 모드는 그 컨테이너의 출력결과를 수신한다는 것을 의미한다.

예를 들어 콘솔에 출력되는 내용같은 것들이다.

-d 플래그를 이용해 detached 모드로 접근할수 있다.

docker run -d 아이디

 

실행중인 컨테이너에 attached 모드로 접근하는법

(1) docker attach 이름

(2) docker logs 이름

docker logs -f 이름으로 향후 그 컨테이너의 로그 출력결과를 다시 볼수 있다.

 

-a 플래그로 attached 모드로 실행할수 있다.

docker start -a 이름

2. 상호작용 모드

컨테이너로 실행중인 애플리케이션은 상호 작용 할 수 없다.

docker run으로 실행하면 디폴트로 컨테이너에 연결된다.

그래서 우리는 컨테이너에 의해 출력된 결과를 받을수 있지만 우리가 어떠한 값을 터미널에 입력할수는 없다.

 

-i 플래그 : interactive 모드로 실행

-t 플래그 : 터미널 생성

docker run -it 아이디

위 명령어로 실행하면 사용자 입력을 수신하는 컨테이너 프로세스에도 연결된다.

docker start로 재실행 할때는 처음에 -t플래그로 시작했기 때문에 이를 기억한다.

그래서 i플래그와 a플래그만 입력하면 된다.

docker -ai 이름

3. 이미지, 컨테이너 삭제

(1) 컨테이너 삭제

docker rm 이름

실행중인 컨테이너는 제거 할 수 없고 중지된 컨테이너만 제거할 수 있다.

docker rm 이름1 이름2 이름3

여러개의 컨테이너를 한번에 제거할 수도 있다.

(2) 이미지 삭제

docker rmi 이미지아이디

기본적으로 이미지 내부의 모든 레이어를 삭제한다.

이미지를 기반으로 하는 컨테이너가 있는때에는 삭제할 수 없다.

따라서 그 컨테이너들을 모두 삭제한 후 이미지를 삭제할 수 있다.

(3) 사용되지 않는 이미지 제거

docker image prune

모두 제거

docker image prune -a

a플래그를 추가해 모두 제거할 수도 있다.

4. 중지된 컨테이너 자동 제거하기

docker run --rm 이미지아이디

컨테이너를 생성할때 --rm 명령어를 추가해주면 중지할때 자동으로 제거된다.

5. 이미지 검사

docker image inspect 이미지아이디

이미지 전체 아이디, 생성시간, 컨테이너 구성, 노출될 포트, 운영체제, 레이어들 등을 확인할 수 있다.

6. 컨테이너로, 컨테이너로부터 파일 복사하기

docker cp dummy/. 컨테이너이름:/test

로컬의 dummy폴더에 있는 전부를 컨테이너의 test폴더에 복사한다.

docker cp 컨테이너이름:/test dummy

컨테이너의 test폴더를 dummy폴더에 복사한다.

 

이 명령어를 활용하여 소스코드가 변경되었을때 복사하여 넣을수 있다.

일반적으로 소스코드가 변경되면 이미지를 다시 빌드하고 다시 시작해야하지만 그 번거로움을 줄일수 있다.

하지만 오류가 빈번하고 파일을 잃어버리기 쉽기 때문에 잘 사용하진 않는다.

실행중인 파일을 복사하는것은 불가능하다.

7. 컨테이너, 이미지에 이름과 태그 지정하기

설정을 따로 하지 않으면 랜덤으로 이름이 생성되는데 이를 지정하여 생성할 수 있다.

(1) 컨테이너 이름 지정

docker run --name 이름 이미지아이디

(2) 이미지 이름,태그 지정

이름:태그 형식으로 이미지의 태그와 이름을 지정할 수 있다.

node:14처럼 node이미지의 14버전을 표시하는 형식으로 그 이미지의 특정화된 버전을 정의할 수 있다.

여러개의 특정화된 이미지 그룹을 생성할 수 있는 것이다.

이미지에 태그가 없다면 그 이름만으로도 이미 고유 식별자이다.

docker build -t 이름:태그 .

 

728x90
반응형

'개발 > Docker' 카테고리의 다른 글

[Docker] 도커 마운트 경로 오류  (0) 2022.12.14
[Docker] DockerHub 사용하기  (0) 2022.12.13
[Docker] Dockerfile  (0) 2022.12.13
[Docker] 이미지와 컨테이너  (0) 2022.12.13
[Docker] 도커의 개념  (0) 2022.12.13
'개발/Docker' 카테고리의 다른 글
  • [Docker] 도커 마운트 경로 오류
  • [Docker] DockerHub 사용하기
  • [Docker] Dockerfile
  • [Docker] 이미지와 컨테이너
TeTedo.
TeTedo.
  • TeTedo.
    TeTedo 개발 일기
    TeTedo.
  • 전체
    오늘
    어제
    • 분류 전체보기 (319)
      • 개발 (274)
        • Article (4)
        • 정리 (21)
        • Spring Boot (17)
        • JPA (2)
        • JAVA (6)
        • Database (4)
        • 자료구조 (11)
        • 알고리즘 (32)
        • React (20)
        • Docker (10)
        • node.js (18)
        • Devops (11)
        • Linux (4)
        • TypeScript (3)
        • Go (10)
        • HyperLedger (4)
        • BlockChain (43)
        • html, css, js (48)
        • CS (3)
        • AWS (3)
      • 모아두고 나중에 쓰기 (3)
      • 팀프로젝트 (18)
        • SNS(키보드워리어) (9)
        • close_sea (9)
      • 개인프로젝트 (1)
        • Around Flavor (1)
        • CHAM (13)
        • ethFruitShop (5)
      • 독서 (0)
        • 스프링부트와 AWS로 혼자 구현하는 웹 서비스 (0)
  • 블로그 메뉴

    • 홈
    • 개발일기
    • CS
    • 실습
    • 코딩테스트
    • 웹
    • Go
    • node.js
    • 팀플
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    nodejs
    html
    ERC721
    go언어
    하이퍼레저
    node
    블록체인
    React
    30일챌린지
    node.js
    go
    컨테이너
    mysql
    도커
    erc20
    프로그래머스
    30일 챌린지
    CSS
    js
    명령어
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
TeTedo.
[Docker] Docker 명령어
상단으로

티스토리툴바