리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트
docker login
docker system info
docker system df
run : 새로운 컨테이너를 생성해 실행하는 명령어 (보통 최초한번만 실행-명령이 끝나면 종료)
옵션 설명
-i
--interactive 컨테이너의 표준 입력(stdin)을 활성화. (주로 -it 함께 사용)
-t
--tty tty (가상 터미널)을 할당, 리눅스에 키보드를 통해 표준 입력(stdin)을 전달할 수 있게한다. (주로 -it 함께 사용)
--name 컨테이너 이름을 지정.
-d
--detach 컨테이너를 백그라운드로 실행.
--rm docker run 명령어가 끝나면, 컨테이너 자동 삭제.
-p
--publish 호스트와 컨테이너의 포트를 연결 (포트포워딩).
-p <호스트 포트>:<컨테이너 포트>
ex) -p 80:8888 → 호스트에 8888로 접속하면, 컨테이너 내부의 80포트로 자동 접속.
-v
--volume 호스트와 컨테이너의 디렉토리 연결(마운트)
-v <호스트 절대경로>:<컨테이너 절대경로>
ex) -v /Users:/usr. → 컨테이너 /usr에 저장하는 파일은 호스트의 /Users 디렉토리에 저장.
--restart 컨테이너 종료시, 재시작 정책 설정
--restart="always" 항상 재시작
--restart="on-failure" 종료 스테이터스가 0이 아닐 때 재시작--privileged 컨테이너 안에서 호스트의 리눅스 커널 기능을 모두 사용
- --rm 옵션과 --restart 옵션은 동시 사용 x
- 상태 Exited 비활성화 / UP 활성화
docker run --name sevas_web nginx:latest → 포어그라운드 ctrl+p,ctrl+q 안됨 , ctrl+c (EXIT상태됨)
docker run -it --name sevas2_web nginx:latest → 포어그라운드+가상터미널할당 ( -it ) ctrl+pq 로 나가서 유지docker run -d --name sevas3_web nginx:latest → 백그라운드실행
docker run -d --name sevas4_web -p 80:80 nginx:latest → 백그라운드실행 + DNAT설정 (웹페이지 출력됨)
exec : 실행 중인 컨테이너에 명령어를 전달(외부 -> 내부)
attach : 실행 중인 컨테이너에 직접 들어가 명령어를 실행 (내부 접근) → 로그 내용 볼 때 사용, 잘 안씀
-it (접속유지)
-d: 백그라운드연결 종료 후 나가기: ctrl +c
연결 유지한 채 나가기: ctrl +pq
멈추기 docker stop [container ID] / 모두 멈추기 docker stop $(docker ps -a -q)
지우기 docker rm [container ID] / 모두 지우기 docker rm $(docker ps -a -q)
도커 내부에서 명령어 사용
apt update
apt install bet-tools
apt install vim
index 찾기find / -name index.html -> /usr/share/ngnix/html