Docker 설치 및 명령어 정리

1차 카테고리
Docker
생성 일시
2024/09/04 02:32
최종 편집 일시
2025/01/08 15:06
발행여부
published
1 more property

Docker unbuntu 설치

설치 방법은 자주 바뀌므로 아래 공식 홈페이지의 가이드를 참고하자.

AWS 우분투에서 Docker sudo 없이 실행

aws에서 sudo없이 도커를 실행하기 위해 도커라는 그룹에 USER를 넣어준다.
sudo usermod -aG docker ${USER}
Python
복사
현 ID가 docker group에 포함되어 있는지를 확인하는 명령(docker가 리스트에 나오면 됨)
id -nG
Python
복사

Docker 명령어

사실 docker help를 치게되면 관련 명령어들을 바로 알 수 있지만, 간혹 빠르게 필요하고 찾기 귀찮을 때가 많다. 그때를 위해 한번 정리해보자.

Docker hub 로그인

docker login docker logout
Bash
복사

Docker 이미지 관련

Alpine 태그 이미지?
최소의 기능만 가진 이미지이다. 운영체제 운영에 필요한 가장 기본이 되는 유틸리티만 모아놓은 리눅스 패키지.
# 이미지 정보 docker images # 다운로드 받은 이미지들의 목록 docker images -q # 이미지 ID만 표시 # 이미지 검색 docker search {다운로드할 검색어} # 이미지 다운로드 docker pull {다운로드할 이미지:버전} # 버전이 없다면 latest 다운로드 docker rmi {이미지ID}
Bash
복사

Docker 컨테이너 관련

# 도커 컨테이너 확인 docker ps # 실행중인 컨테이너만 확인 docker ps -a # 전체 컨테이너 확인 # 도커 컨테이너 생성 docker create {컨테이너 생성에 사용할 이미지} docker create --name {컨테이너 이름 설정} {컨테이너 생성에 사용할 이미지} # 컨테이너 삭제 docker rm {컨테이너 ID} # 컨테이너 실행, docker run을 쓸 것. docker start {컨테이너 이름 or 컨테이너 ID} # (컨테이너가 실행 중일 때) 컨테이너에 명령하기 # alpine은 쉘이 sh이다. bash와 구분되어야 한다. docker exec {옵션} {컨테이너_ID or 컨테이너 이름} {명령} {인자} docker exec -it httpd /bin/sh # 일괄 적용 docker stop $(docker ps -a -q) # 모든 컨테이너 중지 docker rm $(docker ps -a -q) # 모든 컨테이너 중지 docker rmi $(docker images -q) # 모든 이미지 삭제
Bash
복사

Docker run 옵션

-i : 컨테이너 입력을 열어놓는 옵션
-t : 가상 터미널을 할당하는 옵션
—name: 컨테이너 이름을 설정
-d : 컨테이너를 백그라운드에서 실행하는 옵션
—rm : 컨테이너 종료시 컨테이너를 자동으로 삭제하는 옵션
-p : 호스트와 컨테이너 포트를 연결하는 옵션
-v : 호스트와 컨테이너 디렉토리를 연결하는 옵션
# 컨테이너 실행 후, 해당 인스턴스로 들어가서, 터미널로 명령을 할 수 있다. docker run -it {이미지 이름} # 컨테이너 프로세스를 백그라운드로 실행함 docker run -itd {이미지 이름} # 컨테이너에 foreground로 접근 docker attach {컨테이너 이름} # 컨테이너 실행 중지 docker stop # 로그 확인 docker logs {컨테이너ID or 이름} # 컨테이너 즉시 종료 docker kill {컨테이너ID or 이름}
Bash
복사

Docker로 웹서버 띄우기

포트포워딩이 필요하다. docker를 실행한 pc가 Host PC.
docker 컨테이너가 실행되면, 172.16.0.0/16의 private IP가 할당. p 옵션을 이용해 docker 컨테이너의 특정 private IP의 특정 포트로 변환해줄 수 있음. (NAPT)
AWS EC2를 사용중이라면 인바운드 규칙에 9999 포트를 허용해줘야 한다.
docker run -d -p 1234:80 {컨테이너 이름}
Bash
복사

Docker -v 옵션

호스트 PC의 특정 폴더를 docker 컨테이너의 특정 폴더로 교체할 수 있음. 컨테이너가 종료되면 컨테이너 상에서의 파일들은 사라지게 되기 때문에 Host PC의 특정 폴더로 주입해준다.
FTP로 파일을 옮기는 작업이 필요하다. 인바운드 규칙을 확인할 것.
만약 80:80으로 이어주고, 브라우저에서 AWS IP로 접근한다면 index.html을 바로 불러옴.
# apache에서 바라보는 폴더 디렉토리 -> /usr/local/apache2/htdocs docker run -d -p 1234:80 -v {호스트 PC 디렉토리 경로}:/usr/local/apache2/htdocs
Bash
복사

Docker 현황 확인하기

docker system df # docker가 사용하는 저장매체 현황 docker container stats # 실행중인 컨테이너 사용 리소스
Bash
복사