1. main.go 파일 생성 및 코딩.
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
log.Println("received request")
fmt.Fprintf(w, "Hello Docker!!")
})
log.Println("start server")
server := &http.Server{
Addr: ":8080",
}
if err := server.ListenAndServe(); err != nil {
log.Println(err)
}
}
2. Dockerfile 생성
FROM golang:1.9
RUN mkdir /echo
COPY main.go /echo
CMD ["go", "run", "/echo/main.go"]
3. 도커 이미지 빌드
docker image build -t example/echo:latest .
(docker image build -t 이미지명:태그명 Dockerfile경로)
4. 도커 컨테이너 실행
포그라운드 실행 : docker container run example/echo:latest
백그라운드 실행 : docker container run -d example/echo:latest
백그라운드 포트포워딩 : docker container run -d -p 9000:8080 example/echo:latest
이름지정 : docker container run -d --name echoServer -p 9000:8080 example/echo:latest
(호스트의 9000포트를 컨테이너8080포트와 연결한다)
-i : 입력연결유지(-t옵션과 같이사용하는경우가 많음. -it)
-t : 터미널기능 활성화
--rm : 컨테이너 종료 시 파기
-v : 호스트와 컨테이너간에 디렉터리/파일 공유
5. 도커 컨테이너 목록
docker container ls
-q : 실행중인 컨테이너ID만 추출.
--filter : 필터링. 이름기준) --filter "name=echo1" 이미지기준) --filter "ancestor=example/echo" 상태) --filter "status=exited"
-a : 종료된 컨테이너 목록
6. 도커 컨테이너 정지
docker container stop 컨테이너ID(또는 컨테이너명)
7. 실행중인 모든 컨테이너 정지(컨테이너ID만 추출 후 정지)
docker container stop $(docker container ls -q)
8. 컨테이너 재시작
docker container restart 컨테이너ID(또는 컨테이너명)
9. 컨테이너 파기
docker container rm 컨테이너ID(또는 컨테이너명)
-f : 실행중인 컨테이너 삭제
종료된 컨테이너 전부 삭제 : docker container rm $(docker container ls -q --filter "status=exited")
'Dev-Ops > docker, k8s' 카테고리의 다른 글
쿠버네티스 롤링 리스타트 (0) | 2020.05.09 |
---|---|
springboot-app을 docker image생성 및 실행. (0) | 2020.04.21 |
docker redis (0) | 2020.04.20 |
docker명령어 (0) | 2020.04.20 |