- -i : 대화식으로 컨테이너에게 명령 전달 가능
- -t : ssh 와 같은 연결 방법을 제공. 주로, i 와 같이 사용된다
- -d : 컨테이너를 백그라운드에서 동작 시킨다
- --restart : --restart=always 를 하면 데몬 실행과 함께 자동으로 컨테이너가 실행된다
--restart=on-failure 를 사용하면, 처음 컨테이너 시작 또는 생성시 정상 실행이 되지 않거나, 정상 생성이 되지 않는 경우 계속해서 실행을 시도할 수 있다
- -v : 볼륨 제공, 비슷한 옵션으로 --mount 도 사용 가능 하다. mount 는 과거에는 compose 에서만 사용이 가능했으나, 17 버전 이후 부터는 container run 에서도 사용이 가능하게 되었다
- -h ( --hostname ) : 컨테이너 내에서 사용하는 호스트 명
- --name : 관리를 위한 목적으로 컨테이너의 이름을 지정할 수 있다
- -p : 호스트의 특정 Port 와 컨테이너의 특정 Port 를 매핑
- -P : 호스트의 랜덤 Port 와 컨테이너의 특정 Port 를 매핑
- --link : 두 개 이상의 컨테이너를 연결하는 방법으로, Ip 가 아닌 이름으로 연결할 수 있다. link 옵션은 compose 에서는 더 이상 사용하지 않는다
docker container run -it --name centos1 --hostname test centos:7 /bin/bash
docker container run -it --name centos01 -v testvol1:/root centos:7 /bin/bash
Volume 의 경우 도커에서는 현재 로컬에 있는 볼륨을 사용하고 있다. 만약 현재 Host 에 문제가 생긴다면, 볼륨에 저장한 Data 를 사용할 수 없게 될 것 이다. 또한, 다수의 동일한 웹 서버를 배포했을 때, 웹 서버들이 각각의 로컬 볼륨과 연결된다면, 처음 접속한 웹 서버와 나중에 접속한 웹 서버가 다를때, 서로 볼륨이 다르므로, 저장된 사용자 Data 가 다를 것 이다. 혹은 하나의 웹 서버가 고장나서, 다른 웹 서버에 접속시 서로 로컬 볼륨을 사용하므로 사용자는 자신이 하나의 웹 서버에 저장한 Data 를 다른 웹 서버에서 찾을 수 없을 것 이다
- 클라우드 환경에서는 외부에 있는 별도의 스토리지의 볼륨을 마운트하여 사용해야 영구적으로 볼륨을 사용할 수 있다. 이러한 볼륨을 Persistent Volume 이라 부른다
개발자가 요청하는 볼륨을 IP 정보나 마운트 타입에 관계없이 조건만 부합한다면, 자동으로 마운트 될 수 있는 방법을 제공 해야 한다. 이를 쿠버네티스에서는 PVC ( Persistent Volume Claim ) 이라고 한다
개발자 ( PVC ) -------------------> 스토리지 ( PV )
필요할 때마다 그때 그때 불륨을 제공하는 방법은 Storage Class 라는 방법을 사용하면 편리하다