Docker Container

둥냥둥냥둥·2024년 1월 7일
0
post-thumbnail

Docker Container 사용 방법



도커 엔진 ( 시작 / 종료 )

도커 엔진 시작

sudo systemctl start docker

도커 엔진 종료

sudo systemctl stop docker

부팅 시 자동 실행 설정

sudo systemctl enable docker

기본적인 사용 방법

컨테이너 사용의 기본은 도커 명령어다. 명령 프롬프트 및 터미널 화면에서 프롬프트 뒤에 다음 명령어를 입력한다.

컨테이너를 다루는 모든 명령은 'docker' 명령어로 시작한다.

docker ~

docker 명령어 뒤에 오는 [ 무엇을 어떻게 ]에 해당하는 부분을 커맨드라고한다.
커맨드는 다시 상위 커맨드, 하위 커맨드로 구성된다.

  • 상위 커맨드가 [ 무엇을 ]
  • 하위 커맨드가 [ 어떻게 ]
    해당하는 내용을 지정한다. 또 "대상"에는 컨테이너명 또는 이미지명 등 구체적인 이름이 들어간다.

docker 명령 뒤로 [ 무엇을 ], [ 어떻게 ], [ 대상 ]의 순으로 지정하면 된다.

docker [ 커맨드 ] [ 대상 ]

예를 들어, 이름 ksu인 이미지를 컨테이너로 실행 하려면 다음과 같은 명령을 입력하면 된다.
docker [ [container]  [run] ] [ ksu ]
  • 상위 커맨드 : container
  • 하위 커맨드 : run
  • 개상 : ksu
docker image pull ksu ##이미지 내려받기 (pull)

docker container start ksu ## 컨테이너 시작 (start)

옵션과 인자

명령어의 기본적인 형태는 docker [ 커맨드 ][ 대상 ] 이지만 커맨드에는 앞서 설명한 대상 외에도 '옵션'과 '인자'라는 추가 정보가 붙는다.

예를 들어, container run 커맨드에 -d 옵션을 주었다

docker container run [ -d ] ksu 
  • -d 옵션은 백그라운드로 실행하라 이다.

커맨드(상위/하위)

도커 명령어의 커맨드 [ 무엇을 ], [ 어떻게 ] 할 것인지 지정하는 부분이라고 설명했다. '컨테이너'를 '실행'하고 싶다면 container run 커맨드를 사용한다. 다만 역사적 이유로 start나 run처럼 container를 붙이지 않아도 실행 가능한 명려어가 있으며, 관례상 이쪽을 사용하는 경우가 많다.

docker container run ## 커맨드 예

docker run ## 생략 예

옵션

옵션은 커맨드에 세세한 설정을 지정하는 용도로 쓰인다. 백그라운드 실행할 때는 -d, 키보드를 통해 조작하고 싶다면 -i, -t 붙이는 등, 커맨드의 실행 방법 또는 커맨그에 전달할 값을 지정한다. 옵션은 커맨드에 따라 달라진다.

옵션은 - 또는 -- 으로 시작하는 것이 일반적이지만 - 기호를 붙이지 않는 경우도 있다. 그리고 - 나 -- 중 무엇을 사용할지는 커맨드 작성자의 취향이다.

-d
--all

--name ksu

-dit ##-d, -i, -t 합친 예

대상

커맨드와 달리 구체적인 이름을 지정한다. 이름이 ksu인 이미지의 컴테이너를 실행 하려면 아래와 같다.

container start [ 옵션 ] ksu

인자

대상에 전달할 값을 지정한다. 문자 코드 또는 포트 번호 등을 전달할 수 있다. 단, 인자를 지정하는 경우는 그리 많지 않다.

예를 들어, MySQL과 워드프레스를 함께 쓸 때 MySQL 쪽에서 워드프레스가 지원하는 구식 인증 방식을 지정할 때 세 가지 인자를 사용하는 정도로, 필요한 상황이 제한적이다. 작성 방벙은 옵션과 마찬가지로 - 또는 -- 로 시작하는 경우가 많다.

--mode=1

--style nankyoku

대표적인 명령어

Docker CommandSub-commandOptions
dockerrun-d, -it, -p, --name, --restart, -v, --env
dockerps-a, -q, -f
dockerimages-a, -q, --digests, --no-trunc
dockerbuild-t, -f, --build-arg, -m, --target
dockerstop-
dockerstart-
dockerrm-f, -v, -l, -f
dockerrmi-f, -q
dockerpull-
dockerpush-
dockerexec-it, -d, -u, -w
dockerlogs-f, --since, --tail, --timestamps
dockernetworkcreate
dockervolumecreate

컨테이너 조작 커맨드

커맨드 명내용생략 여부옵션
exec실행 중인 컨테이너에서 명령어 실행o-i -t
logs컨테이너 로그 출력o
attach실행 중인 컨테이너에 로컬 입출력 스트림 연결o
cp컨테이너와 로컬 파일 시스템 간 파일 복사o
pause하나 이상의 컨테이너의 모든 프로세스 일시 중지o
unpause일시 중지된 하나 이상의 컨테이너 프로세스 다시 시작o
inspect하나 이상의 컨테이너에 대한 상세 정보 확인o
stats컨테이너의 리소스 사용량 실시간 모니터링o-i
top컨테이너 내 실행 중인 프로세스 목록 표시o

이미지 조작 관련 커맨드

커맨드 명내용생략 여부옵션
pull이미지 다운로드o
push이미지 업로드
tag이미지에 태그 추가
buildDockerfile로부터 이미지 빌드o-t: 이미지명, -f: Dockerfile 경로
images로컬에 저장된 이미지 목록 출력-a: 모든 이미지 표시, -q: 이미지 ID만 표시
rmi이미지 삭제-f: 강제 삭제, -q: 이미지 ID
history이미지 히스토리 출력
save이미지를 아카이브로 내보내기-o: 출력 파일 경로
load이미지 아카이브에서 이미지 가져오기-i: 입력 파일 경로

볼륨 조작 관련 커맨드

커맨드 명내용생략 여부옵션
create새로운 볼륨 생성x--driver, --name, --opt
ls볼륨 목록 출력x-q: 볼륨 ID만 표시
inspect볼륨에 대한 자세한 정보 출력x
rm하나 이상의 볼륨 삭제x-f: 강제 삭제, -v: 볼륨 ID
prune사용되지 않는 모든 볼륨 삭제x-f: 강제 삭제

네트워크 조작 관련 커맨드

커맨드 명내용생략 여부옵션
create새로운 네트워크 생성x--driver, --subnet, --gateway
ls네트워크 목록 출력x-q: 네트워크 ID만 표시
inspect네트워크에 대한 자세한 정보 출력x
rm하나 이상의 네트워크 삭제x-f: 강제 삭제, -v: 네트워크 ID
prune사용되지 않는 모든 네트워크 삭제x-f: 강제 삭제
connect컨테이너와 네트워크 연결x--ip, --alias, --ip6
disconnect컨테이너와 네트워크 연결 해제x

단독으로 쓰이는 커맨드

커맨드 명내용
version도커 엔진 버전 정보 출력
info도커 시스템 정보 출력
login도커 레지스트리 로그인
logout도커 레지스트리 로그아웃
system prune사용되지 않는 리소스 (컨테이너, 네트워크, 볼륨, 이미지 등) 삭제
profile
Java 먹자

0개의 댓글