도커 다운로드
윈도우즈로 선택
도커허브 회원가입
구글 Oauth가입하자
도커 시스템 이해
도커는 커널을 새로 만드는게 아니라 공유하는 시스템이므로, 명령어만 내려주면된다.
그래서 가볍다.
우리는 컨테이너와 명령어만 , 만들면 된다.
도커 명령어
docker pull (도커허브)
ubuntu를 도커 허브로 부터 다운 받는다.
$ docker run -it --rm tomcat:9.0
JavaScript
복사
docker images (이미지 목록보기)
docker run (이미지명)
이미지 안에 대몬 프로그램이 없으면 꺼진다.
내부 서버가 켜져있으면 안 꺼진다.
shell 명령 대기 프로그램은 항상 돌아가고 있다.
그래서 프로그램이 안꺼지도록 터미널을 열어두면 입력대기 상태이기 때문에 안꺼진다.
docker run -it ubuntu bash
상호작용하는 터미널을 연다는 명령어
입력 대기 상태이기 떄문에 계속 돌아가고 있다.
docker ps
container ID : 프로세스 아이디 (얘가 죽으면 없어진다. )
•
도커는 포트포워딩으로 localhost:8080을 때리면 자신의 내부 80포트를 때린다.
exit
프로세스를 빠져나온다.
docker run -dit ubuntu bash (-dit)
detach 모드, 백그라운드로 실행
attach (실행중인 컨테이너에 접속)
실행중이 컨테이너에 들어갈 수 있다.
exec
실행중인 컨터에이너에 명령어를 바꿔서 실행하는 명령어
외부에서 컨테이너 내부를 실행할 수 있다는 말이다.
Detach모드로 실행
커맨드가 bash로 되어있는거 확인
컨테이너 ID가 b348인데,
명령어를
docker exec -it b348 echo hello 로
만들면 이렇게 내부 컨테이너에 들어가서 해당 명령어를 실행하고 다시 빠져 나온다.
톰캣
도커 허브 접속 해서 톰캣 찾기
docker run -it tomcat:9.0
을 실행했는데, 없으면 다운받고 실행을 한다.
docker ps
를 실행해보면 tomcat이 실행되고 있는 것이 보인다.
기존 창에는 입력어 입력란이 없으므로 새로 창을 열어서 실행했다.
docker exec -it 2c67 bash
JavaScript
복사
커맨드를 변경해서 실행하고 싶을 떄 쓰는 명령어이다.
모든 이미지는 디폴트 커맨드가 있다.
커맨드를 변경해서 실행중인 컨테이너 접근하고 싶으면 exec 사용한다.
# Docker 기본 명령어 리스트
# 1. 이미지 관리
docker pull [이미지 이름] # Docker Hub에서 이미지를 다운로드합니다.
docker images # 로컬에 저장된 모든 이미지를 나열합니다.
docker rmi [이미지 ID] # 로컬에서 이미지를 삭제합니다.
# 2. 컨테이너 관리
docker run [옵션] [이미지 이름] # 새로운 컨테이너를 생성하고 실행합니다.
docker ps # 실행 중인 컨테이너 목록을 나열합니다.
docker ps -a # 모든 컨테이너 목록을 나열합니다.
docker start [컨테이너 ID] # 중지된 컨테이너를 시작합니다.
docker stop [컨테이너 ID] # 실행 중인 컨테이너를 중지합니다.
docker restart [컨테이너 ID] # 컨테이너를 재시작합니다.
docker rm [컨테이너 ID] # 컨테이너를 삭제합니다.
docker exec -it [컨테이너 ID] bash # 실행 중인 컨테이너 내부에 접근하여 bash 셸을 실행합니다.
# 3. 네트워크 관리
docker network ls # Docker 네트워크 목록을 나열합니다.
docker network create [네트워크 이름] # 새로운 네트워크를 생성합니다.
docker network rm [네트워크 이름] # 네트워크를 삭제합니다.
# 4. 볼륨 관리
docker volume ls # Docker 볼륨 목록을 나열합니다.
docker volume create [볼륨 이름] # 새로운 볼륨을 생성합니다.
docker volume rm [볼륨 이름] # 볼륨을 삭제합니다.
# 5. Dockerfile 및 빌드
docker build -t [이미지 이름] . # Dockerfile을 사용하여 이미지를 빌드합니다.
# 6. 컨테이너 로그
docker logs [컨테이너 ID] # 컨테이너의 로그를 출력합니다.
docker logs -f [컨테이너 ID] # 컨테이너의 로그를 실시간으로 출력합니다.
# 7. Docker 정보
docker info # Docker 시스템 정보를 출력합니다.
docker version # Docker 버전 정보를 출력합니다.
# 8. 이미지 및 컨테이너 저장 및 로드
docker save -o [파일명.tar] [이미지 이름] # 이미지를 파일로 저장합니다.
docker load -i [파일명.tar] # 파일에서 이미지를 불러옵니다.
docker export [컨테이너 ID] -o [파일명.tar] # 컨테이너 파일 시스템을 파일로 내보냅니다.
docker import [파일명.tar] # 파일에서 컨테이너 파일 시스템을 가져옵니다.
# 9. 기타 유용한 명령어
docker inspect [컨테이너 ID/이미지 이름] # 컨테이너 또는 이미지의 상세 정보를 출력합니다.
docker diff [컨테이너 ID] # 컨테이너 파일 시스템의 변경 사항을 나열합니다.
JavaScript
복사
공유기는 MAC으로 못찾고 IP주소로 찾아야 되기 떄문에 ARP 테이블이 있어야 된다.
도망 못가게 하는 것을 서브넷 마스크라고 한다.
포트 포워딩 테이블도 필요하다.
포트 포워딩 > ARP 테이블 (IP) > ARP 테이블 (MAC)
- 하이픈이 하나라면 약어
— 하이픈이 두개라면 풀네임
포트 포워딩 설정
docker run -dit -p 3000:8080 tomcat:9.0
JavaScript
복사