실행
docker 실행
docker run (<옵션>) <이미지 이름> (<명령어>) (<인자>)
docker run 실행 과정 ( 생성 + 시작 )
1. Image를 pull받음
1) 실행하고자 하는 image가 있는지 검색
2) 있으면 image를 찾고, 없으면 docker hub에서 image 검색
2. Docker hub 혹은 Host OS에서 찾은 이미지를 이용해 container를 생성
3. Image Layer를 생성하고 그위에 Container Layer를 배치
- Container는 filesystem에 저장이 되고 readable,writable image가 생성됨
4. Bridge / network interface를 이용해 docker와 Hosr OS 간의 통신을 열어줌
5. 사용 가능한 IT주소 연결
6. 애플리케이션을 실행
중지
docker kill
docker stop
stop과 kill 차이점
stop은 그 동안 하던 작업들을 완료하고 컨테이너 중지.
kill은 즉시 중지 컨테이너 중지.
삭제
docker rm (<옵션>) <도커 이름 or 아이디>
실행중인 컨테이너는 삭제 불가능하므로 stop또는 kill로 중지 후에 삭제해야함. 옵션 -f를 추가하면 강제로 삭제됨
모든 컨테이너 삭제
docker rm 'docker ps –a -q'
이미지 삭제
docker rmi (<옵션>) <이미지의 이름 or 이미지 id>
옵션에 -f을 사용하면 컨테이너 삭제 전에 이미지 강제 삭제
컨테이너, 이미지, 네트워크 모두 삭제
docker system prune
실행중인 도커는 삭제되지않음
목록
현재 실행중인 컨테이너의 목록
docker ps
모든 컨테이너의 목록
docker ps -a
이미지 목록
docker images
숨김처리된 이미지를 포함한 목록
docker images -a
컨테이너 세부 정보
Docker inspect <컨테이너 이름 or id 앞자리의 일부분>
컨테이너 로그
docker logs <컨테이너 이름>
생성 및 시작
생성
Docker create <옵션><이미지><커맨드>
생성만하고 시작은 하지않음
시작
docker start <컨테이너 이름 or 아이디>
재시작
docker restart <옵션> <컨테이너>
이미지 생성
docker build (<옵션>) </dockerfile 경로>
옵션에 -tag 하면 이미지 이름과 태그 설정. 이름만 설정 시 태그 기본 값은 latest
접근
컨테이너에 접속
docker attach
백그라운드에서 돌아가고 있는(=detach) 컨테이너에는 불가능
외부에서 실행중인 컨테이너에 접근해 명령어 전달
docker exec (<옵션>) <컨테이너 이름 or id의 앞부분 일부> (<커맨드>)
이미 실행 중인 컨테이너에 명령어를 전달하고싶으면
터미널 2개 실행 후 첫번째 터미널에서 컨테이너 하나 실행
docker run alpine ping localhost
두번째 터미널에서 컨테이너가 잘 동작하고 있는지 확인하고 다른 명령어를 전달
밖으로 나가고 싶을 때
ctrl + p + q
배포
docker commit <컨테이너 이름 or id 아이디의 앞자리> <이미지의 이름>:<태그>
컨테이너를 이미지로 만들고 특정 어플리케이션에 특화된 컨테이너를 만들어 이미지로 commit
그 이미지로 컨테이너를 계속 찍어내면 그 컨테이너에서 어플리케이션의 설정을 할 필요가 없음.
설정에 맞게 생성한 컨테이너가 있으면 그 컨테이너를 이미지로 만든 뒤 배포할 수 있음.
'Chapter01 > Docker' 카테고리의 다른 글
[ Docker ] Harbor 서버에 docker image push하기 (0) | 2024.10.08 |
---|---|
[ Docker ] 이미지 생성 (0) | 2024.09.30 |
[ Docker ] image , container (0) | 2024.05.09 |
[ Docker ] Docker Volume (0) | 2023.10.18 |
[Docker] 개념 (0) | 2021.04.25 |