728x90
> docker pull {이미지명}
> docker pull {이미지명:태그명}
- 이미지 가져오기
- 용량 먹음
[컨테이너 실행 방법1]
> docker create -it --name encore ubuntu:18.04
- 컨테이너 생성 (실행 X)
> docker start encore
- 컨테이너 실행
- 컨테이너 종료되었을 때 attach와 같이 사용
- 컨테이너 안의 실행파일이 남아있음
> docker attach {컨테이너ID | 컨테이너명}
- 컨테이너 접속
- 컨테이너 종료(exit, stop)되었을 때 start와 같이 사용
[컨테이너 실행 방법2]
> docker commit -a 'encore' -m 'first commit' {컨테이너명} {이미지명}:{태그명}
- 이미지 만들기
- -a "누가 만들었니"
- -m "메세지"
> docker run {이미지명}:{태그명}
> docker run -it {이미지명}
> docker run -it {이미지명}:{태그명}
> docker run -it --name {컨테이너명} {이미지명}:{태그명}
> docker run -it --name {컨테이너명} -p {로컬PC포트}:{도커포트} {이미지명}:{태그명}
> docker run -it --name {컨테이너명} {사용자명}/{이미지명}
#mysql 컨테이너 실행
> docker run -d --name wordpressdb -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=wordpress mysql:5.7
#wordpress 컨테이너 실행
> docker run -d --name wordpress -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=password -e WORDPRESS_DB_NAME=wordpress --link wordpressdb:mysql -p 80:80 wordpress
- run : 이미지가 없으면 다운받은 다음 그 이미지를 내 컴퓨터에서 컨테이너로 만듦.
- -it : run 명령어의 옵션. 해당 컨테이너를 연 다음 그 환경 안에서 CLI 즉, 명령어를 입력할 수 있게 만들어줌
- -p : 내 컴퓨터 (80번) 포트와 도커의 (80번) 포트를 연결시켜줘. 도커에 띄워진 (아파치를) 내 컴퓨터에서 확인할 수 있음
- -d : 백그라운드 실행
- -e : 파라미터
- --link : mysql과 묶어주기
run -it == create + start + attach 이므로,
run -it 명령어를 더 자주 씀
> docker stop $(docker ps -aq)
> docker stop {컨테이너명}
- 모든 컨테이너 종료
- 컨테이너를 종료시키면 그 컨테이너에서 실행되었던 명령어들은 무효가 됨(wget을 설치했는데 삭제됨). 그래서 환경을 세팅하고 바로 이미지로 만들어야 함
- Ctrl + P + Q로 종료하지 않고 빠져나오는 방법도 있음
[볼륨 방법1]
> docker run --name {컨테이너명} -v %cd%:{도커컨테이너경로} {이미지명}
> docker run --name {컨테이너명} -v {내PC경로}:{도커컨테이너경로} {이미지명}
- -v : 내PC 폴더를 도커 컨테이너 폴더와 공유(복사)하는 것
- 내PC 파일 -> 도커 컨테이너 파일
[볼륨 방법2]
> docker volume create --name {볼륨명1}
> docker run -it --name {컨테이너명1} -v {볼륨명1}:{도커컨테이너경로} {이미지명}:{태그명}
> docker run -it --name {컨테이너명2} -v {볼륨명1}:{도커컨테이너경로} {이미지명}:{태그명}
- 볼륨 생성
- 생성된 볼륨이 공유된 컨테이너 실행
- 컨테이너1에서 만든 파일이 컨테이너2에 공유됨
- 컨테이너1을 stop해도 컨테이너2는 실행됨
> docker run -it --name vol_from_cont --volumes-from volume_overide
- ??
> docker volume ls
- 볼륨 리스트 조회
> docker images
- 내 컴퓨터의 도커 이미지들 확인
- run 명령어 쓰기 전에 확인
> docker ps
> docker ps -a -q
- 현재 실행중인 컨테이너들 확인
- -a : 과거에 만들었던 모든 컨테이너들 확인. 컨테이너 삭제하면 안뜸
- -q : 컨테이너 ID 출력
> docker exec -it {컨테이너명} {bash 등 리눅스 명령어}
- 해당 컨테이너 내에서 bash shell을 실행한다
- 해당 컨테이너 내부를 통해 가상의 리눅스 환경으로 들어간 것
- 컨테이너마다 각각의 파일시스템과 네트워크가 있음 (/etc, /bin, /root 등)
docker: Error response from daemon: Conflict. The container name "/{컨테이너명}" is already in use by container "{컨테이너ID}". You have to remove (or rename) that container to be able to reuse that name.
> docker rm {컨테이너명}
> docker rm -f {컨테이너명}
> docker rm $(docker ps -a -q) #PS에서만 실행됨
- 컨테이너 삭제
- -f : 강제 삭제
> docker container prune
- 도커 컨테이너 모두 지우기
- 복구 안됨
> docker images rmi $(docker images -q)
- 이미지 삭제
- 이미지를 실행하는 컨테이너부터 삭제해야 함
> docker image prune
- 댕글링 이미지 삭제
- 댕글링 이미지 : 컨테이너가 사용중인 이미지를 강제로 삭제했을 때 이름이 none인 이미지
> docker volume prune
- 사용되지 않은 볼륨을 한꺼번에 삭제
> docker inspect --type volume {볼륨명}
> docker inspect {이미지명}:{태그명}
- 볼륨에 대해 자세히 보고싶을 때. 볼륨이 실제로 어디에 저장되는지 알 수 있습니다.
- 이미지의 Layer를 알고싶을 때
> docker container inspect volume_auto
- 전체 볼륨에 대한 정보
> docker logs -f {컨테이너명}
- 컨테이너 로그 보기
'두두의 IT' 카테고리의 다른 글
도커 컴포즈 파일(docker-compose.yml) 개념/작성/실행 (0) | 2022.03.12 |
---|---|
도커 파일(Dockerfile) 개념/작성/실행/배포 (0) | 2022.03.12 |
쿠버네티스 / 도커 / 도커 허브 / 도커 이미지 / 도커 컨테이너 / 도커 볼륨 (0) | 2022.03.12 |
Spring / Spring Boot / Gradle 용어 정리 (0) | 2022.03.07 |
MySQL / ORM / JPA / Hibernate 용어 정리 (0) | 2022.03.07 |