이미지 build
명령어
docker build -t [이미지명] [dockerfile 경로]
- 이미지 명 없이 build하면 무작위의 UUID로 이름이 붙여진다. 그래서 다른 명령어를 입력할 때 복사 붙여넣기를 해야 하는 불편함이 있으므로 이름을 붙여주자.
- docker file 경로는 빌드한 Dockerfile이 위치한 폴더를 절대/상대 경로로 적어주면 된다.
예시
docker build -t my-auth .
경로가 점(.) 인 이유는 docker 파일이 있는 디렉토리 안에 들어와 위의 명령문을 입력했기 때문이다.
만약 빌드하려고 하는 docker 파일이 현재 위치와 다른 곳에 있다면 절대/상대경로를 입력하면 된다.
컨테이너 생성
명령어
docker run --name [컨테이너명] -p [로컬포트]:[컨테이너포트] [이미지명]
- 이미 빌드해 놓은 이미지를 바탕으로 컨테이너를 생성하고 실행하라는 명령어이다. 이미지명은 UUID 혹은 이미 붙여놓은 이름이 있다면 그것을 입력하면 된다.
- -name으로 컨테이너명을 붙여줄 수 있다. 만약 --name 옵션으로 이름을 붙여주지 않는다면 다른 명령어를 입력할 때 UUID를 복붙해야 하는 번거로움이 있으므로 이름을 붙여주는게 좋다.
- -p 옵션은 포트를 설정하는 옵션이다. 바깥에서 어떤 포트로 접속하면 컨테이너의 어떤 포트로 연결이 되는지 설정하는 옵션이다. 이런 걸 해야하는 이유는 바로 컨테이너는 격리된 하나의 가상 공간이므로 그냥 접근할 수는 없고 따로 포트 설정을 해줘야 하기 때문이다.
- 예를 들어 컨테이너 안에서 React 웹사이트가 돌아가고 있다고 하자. 로컬에서 돌리던 것과 마찬가지로 3000번 포트를 브라우저에 입력하면 아무것도 안뜬다. 그래서 로컬에서 3000번 포트로 접속하면 도커의 3000번 포트로 연결해준다고 설정해야 한다.
예시
docker run --name my-auth -p 5000:5000 my-auth
실행 (run)
docker start [컨테이너명]
docker run을 하면 컨테이너 생성과 함께 시작을 하므로 일시정지를 했다가 다시 실행하는 경우에는 docker start 명령어를 써야 한다.