Docker
Docker 명령어 (기본 + 볼륨)
쿠와와
2020. 12. 28. 18:04
호스트에서의 명령어 --------------------------------------------
docker -v : 도커의 버전을 확인
docker run -i -t 이미지name
엔진이 존재하지 않는다면 도커 허브에서 자동으로 내려받음, 그후 생성 + 내부로 들어옴
docker create를 사용하면 생성만 하고 컨테이너 안으로 들어가지 않음
- -i = 상호 입출력 ( 표준 입출력이 활성화된 상호작용이 가능할 shell 환경으로 설정)
- -t = tty 활성화해서 배시(bash) shell을 사용하도록 컨테이너 설정
- --name = 컨테이너의 이름을 설정할 수 있음
- -p 호스트의 포드: 컨테이터 포트 : 포트를 설정 ( 포트를 이용해서 호스트의 포트와 바인딩해 연결할 수 있게 함 )
- -d : Detacjed 모드로 컨테이너 실행 - 컨테이너를 백그라운드에서 동작하는 APP으로써 실행하도록 설정, 즉 입출력이 없음 foreground로 실행되 사용자의 입력을 받지 않음.
- -e : 컨테이너 내부의 환경변수를 설정함 - ex) -e MYSQL_ROOT_PASSWORD=password
- -> echo $MYSQL_ROOT_PASSWORD 해보자. 결과 password
- --link Aname:B에서쓸name : B컨테이너에서 A컨테이너로 접근하는 방법 (내부 IP 몰라도 별칭으로 접근 가능)
볼륨 ( 데이터 공유할 때 사용 )
- -v host디렉토리:컨테이터dir = 디렉토리를 공유한다.
- 여러번 사용가능
- 호스트 볼륨의 경우 완전히 같은 폴더로서 사용 (동기화 x)
- 호스트에 폴더가 없어도 만들어줌
- --volume-from : 컨테이너를 생설할 때 사용 => -v 적용한 컨테이너의 볼륨 디렉터리 공유할 수 있음
- docker volume 을 사용하는 방법 (사용방법은 docker volume 뒤에 다가 밑에 명령어 사용하면 됨)
- create --name 컨테이너name :
- 로컬 호스트에 저장이되며 도커 엔진에 의해 생성되고 삭제됨
- 나는 보통 docker run -i -t --name volumns -v /root 이렇게 사용
docker inspect : 컨테이너, 이미지, 볼륨 등 도커의 모든 구성 단위의 정보를 확인할 때 상용
- --type [컨테이너, 이미지, 볼룸] [해당 타입에 맞는 구성요소 이름]
컨테이너 내부로 들어가기
- docker start : 컨테이너 실행
- docker attach : 컨테이너 진입
docker exec : 컨테이너 내부의 shell 사용할 수 있음
ex) docker exec -i -t wordpressdb /bin/bash -> 내부 컨테이너의 /bin/bash 프로세스를 실행하고 -i -t를 사용해 배시 쉘을 쓸 수 있게 유지함 (exec만 사용하면 컨테이너에서 실행한 명령어에 대한 결과만 반환)
컨테이너 내부에서 빠져나오는 방법
- 정지후 종료 = ctrl + D, exit
- 정지하지 않고 종료 = ctrl + Q, P
docker pull 이미지name
도커 공식 이미지 저장소에서 이미지를 내려받을 때 사용
호스트에서 확인 하는 docker 목록
- docker images : 도커 엔진에 존재하는 이미지의 목록을 출력
- docker ps : 정지되지 않은 컨테이너 목록 확인
- -a = ps 뒤에 적어주면 정지된 컨테이너 목록까지 확인 가능
docker rename 원래이름 바꿀이름 : 도커 이름 재설정
docker stop 컨테이너이름 : 도커 컨테이너 중지
docker rm 컨테이너이름 : 도커 컨테이너 삭제 (실행되고 있으면 삭제되지 않음)
컨테이너 내부에서의 명령어 --------------------------------------------
리눅스랑 동일.
도커 볼륨 --------------------------------------------
도커 컨테이너 (수정가능)
도커 이미지 (읽기 전용, 수정 불가능)
컨테이너 수정 삭제 쉬움 -> 데이터 날라가면 복구 힘듬 그래서 쓰는게 볼륨임