상세 컨텐츠

본문 제목

docker 주요 명령어

docker&aws distribute

by 개복신 개발자 2022. 11. 24. 19:37

본문

728x90
반응형

docker--리눅스 컨테이너부터 시작된 기술

리눅스 chroot 명령어를 통해 하나의 별도의 리눅스 컴퓨터가 생성됨

원천적으로 분리된 하나의 리눅스 시스템이 생긴다.

 

docker daemon process에 docker command가 전달이 되어 작동한다고 이해하면 된다.

내부적으로

docker command --> 일종의 클라이언트라고 생각하면 됨

REST API를 통해 docker command를 전달

docker machine을 이용하여 원격으로 docker command 이용할 수 있다.

 

도커 이미지-(클래스)

스크립트의 집합

우분투를 설치해라-웹서버를 설치해라- 특정 파일을 삽입해라 등등의 스크립트를 쌓았다고

생각하면 된다.

정적인 파일

 

도커 컨테이너-(객체)

그 이미지를 실행하는 여러개의 실행 파일이라고 생각하면 된다.

 

도커 명령어

docker login

docker login 명령어

docker hub에서 회원가입한 아이디 비밀번호를 토대로 한다.

 

docker search ubuntu

--> 다운로드 받을 이미지 검색

도커 이미지는 이미지명[:태그]로 이루어질 수 있다.

태그는 보통 버전 정보를 넣는다.

 

official 항목이 OK 라고 써져 있으면 공식 이미지이다

닉네임명/이름과 같이 /가 있으면 / 앞단은 도커 허브 사용자명이고 뒷단은 해당 사용자가 만든 이미지로

생각할 수 있다.

 

-docker search --limit=5 ubuntu

너무 많은 이미지가 뜨는 것이 싫은 경우 --limit 옵션을 넣어서 몇개만 보여지도록 설정 가능하다.

 

-docker pull ubuntu

ubuntu image 다운로드

docker images를 통해 다운로드한 이미지 목록 확인 가능

docker images ls

docker images ls -q

 

-다운로드 받은 이미지 삭제

docker rmi 이미지명 id(혹은 이미지 repository 이름)

or

docker image rm 이미지 id (혹은 이미지 repository 이름)

 

-컨테이너 생성

이미지와 컨테이너는 각각 관리해줘야 한다.

docker create 이미지명

--> 해당 이미지로 컨테이너를 생성한다.

 

-생성된 도커 컨테이너 확인

docker ps --> 실행중인! 컨테이너

docker ps -a --> 전체 컨테이너(생성되고 사용되지 않는 컨테이너도)

이름 옵션을 넣는 것이 좋다. 직접 지정하지 않는 경우에 도커가 임의의 이름을 지정한다.

docker create --name 내가 원하는 컨테이너 이름 / 이미지 이름

 

-컨테이너 삭제

docker rm 삭제할 컨테이너 ID(이름)

 

-컨테이너 실행

docker start 컨테이너 이름

 

**참고

docker start 명령어를 했는데 바로 종료가 되는 경우

--> 키보드로 입력을 받아야 하는 상태인데 입력을 받을 수 없는 상태여서 종료된 경우일 수 있다.

ex) 우분투 bash 프로그램 start 했는데 입력할 수 없는 상태여서 바로 종료됨

 

-docker run 명령어

해당 이미지를 생성하면서 바로 실행하는 명령어

i 옵션

표준 입력을 열어놓는 옵션

 

t 옵션

pseudo tty

tty: 터미널 --> 리눅스 계열에서의 콘솔 또는 터미널을 의미한다.

따라서 가상 터미널을 할당하는 옵션

-it 옵션을 넣음 --> 표준 입력이 터미널로 이어지는 옵션

 

새로운 터미널로 이동

docker run -it --name myubuntu ubuntu

 

rm 옵션

컨테이너가 종료됨가 동시에 해당 컨테이너가 삭제됨

docker run -it --rm ~~

 

d옵션

컨테이너를 백그라운드로 실행하기

백그라운드에서 실행되고 있다.

attatch 명령어로 들어갈 수 있다.

 

ex)

 

-실행중인 컨테이너 종료하기

docker stop 아이디 or 이름

이전에 백그라운드로 실행한 컨테이너 종료

 

중지한 컨테이너는 (docker start 컨테이너 아이디)로 재실행 가능

**실행중인 컨테이너의 실행 상태를 잠깐 멈추는 명령어는 docker pause

멈춘 컨테이너 다시 실행 docker unpause


웹서버로 docker run 옵션 테스트해보기

1.apache 웹서버 공식 docker 찾기

docker run -d --name apacheweb httpd

httpd: 아파치 웹서버 도커 이미지

 

2.docker run -d -p 9999:80 --name apacheweb2 httpd

-p옵션 호스트 pc에 9999포트로 접속하면 자동으로 이를 해당 컨테이너의 80 포트에 연결해주겠다는 의미

로컬 환경에서 위 명령어를 실행했다면 localhost:9999로 들어가면 된다.

만약 ec2 우분투 환경에서 실행했다면 보안그룹에 9999를 열어주고 해당 탄력적 ip의 9999번 포트로 이동하면

해당 페이지로 이동 가능하다.

9999 포트 페이지

 

docker run -v 옵션

httpd 이미지 디폴트 html 태그(IT WORKS)가 나오는 것을 바꿔보자!

index.html을 연결하고 싶다면

 

-docker system df

이미지 컨테이너가 몇개인지 작동하는게 몇개인지 용량이 어느정도인지 알 수 있는 상태창으로 생각할 수 

있다.

 

-alpine

최소의 기능만 가진 이미지로 생각할 수 있다.

예를 들어 우리가 우분투 환경에서 필요한 기능은 httpd를 실행하는 것밖에 없을 때 최소한의 기능만

있는 우분투 도커 이미지만 필요하다. 이때 사용할 수 있는 것이 alpine이다.

docker run -d -p 80:80 -v /home/ubuntu/2021_DEV_HTML:/usr/local/apache2/htdocs

 --name apacheweb httpd:alpine

 

-docker container stats

실행 중인 컨테이너의 시스템 리소스 사용현황을 확인할 수 있다.

 

-실행중인 컨테이너에 명령 실행하기

docker exec 옵션  컨테이너ID  명령인자

ex) docker exec -it apacheweb2 /bin/sh

-it: 외부 명령어를 내부 호스트 터미널로 이어지는 옵션

bin/sh 쉘 프로그램 실행--> 내부 터미널로 연결되어 컨테이너 안으로 들어갈 수 있다.

 

bin/bash가 아닌 bin/sh를 사용하는 이유-->alpine은 기본적인 프로그램만 들어가있기 때문에 shell 사용

 

-실행중인 컨테이너에 연결하기

백그라운드로 실행중인 컨테이너에 연결

docker attach 컨테이너ID

 

**exec vs attach

exec:해당 컨테이너에 신규 명령을 실행하는 명령어

attach: 컨테이너에 연결하는 명령어

 

-모든 컨테이너 삭제하기(+모든 도커 이미지 삭제하기)

모든 도커 container 삭제시 명령어
모든 도커 image 삭제시 명령어
그 외 삭제 관련 명령어

 

반응형

'docker&aws distribute' 카테고리의 다른 글

모던 서버 기술 관련 배경지식  (0) 2022.11.22
2-모듈5 인프라 자동화  (0) 2022.11.01
nginx 배포  (0) 2022.10.04
Amazon web service  (0) 2022.09.10
클라우드 컴퓨팅의 이점  (1) 2022.09.10

관련글 더보기

댓글 영역