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
복사