도커 살펴보기
도커란 무엇입니까?
Docker는 개발자와 시스템 관리자가 랩톱, VM 또는 클라우드에서 분산 응용 프로그램을 구축, 배송 및 실행할 수 있는 개방형 플랫폼입니다. Docker는 컨테이너화 형식으로 여러 응용 프로그램을 실행하는 작업에 널리 사용됩니다. 예: 하나의 컨테이너에 실행할 웹 서버가 있을 수 있습니다. 애플리케이션 및 기타 컨테이너는 웹 애플리케이션에서 사용하는 mysql 데이터베이스를 처리할 수 있습니다. 소스 wiki
도커는 어디에 사용됩니까?
Docker는 많은 경우에 사용할 수 있으며 요즘에는 소프트웨어 패키지가 보다 효율적이고 빠르고 안전한 방식으로 가상으로 실행됩니다. 그렇다면 도커가 아닌 이유는 무엇입니까?
간단한 예를 들어 보겠습니다. 친구가 최신 golang 버전, mysql 데이터베이스 및 nginx 웹 서버가 필요한 프로젝트를 공유하려고 합니다....이제 이 프로젝트를 수동으로 실행하려면 다음과 같은 동일한 버전을 설치해야 합니다. 로컬 컴퓨터에서 시스템 파일, mysql 및 웹 서버로 이동합니다. 버전 구성 문제도 거쳐야 합니다.
이 골칫거리를 없애기 위해 프로젝트를 도커로 만들어 봅시다.
먼저 간단한 도커 파일을 작성합니다. root_project 디렉터리에 파일 이름 Dockerfile을 만듭니다.
FROM amd64/golang:1.10.3
WORKDIR /go/src/app
COPY . .
RUN go get -u github.com/gorilla/mux
RUN go get github.com/pilu/fresh
RUN go get github.com/sirupsen/logrus
CMD ["fresh"]
우리가 만든 스크립트를 파헤쳐 보자
FROM amd64/golang:1.10.3
go 버전 go:1.10.3으로 도커 원격 저장소를 가져옵니다.
WORKDIR /go/src/app
도커 컨테이너 내부의 작업 디렉토리를 정의합니다.
COPY . .
현재 작업 디렉토리를 docker 컨테이너 내부의/go/src/app에 복사합니다.
RUN go get -u github.com/gorilla/mux
RUN go get github.com/pilu/fresh
RUN go get github.com/sirupsen/logrus
프로젝트에 따라 다른 패키지를 설치합니다. 여기에서 들어오는 요청을 각각의 핸들러와 일치시키기 위해 요청 라우터와 디스패처를 구현하는/gorilla/mux를 설치했습니다./pilu/fresh는 코드를 저장할 때마다 웹 애플리케이션을 빌드하고 (다시) 시작하는 명령줄 도구입니다. 마찬가지로 logrus는 상태 데이터를 기록하는 데 사용됩니다. 이러한 패키지는 필수가 아니며 요구 사항에 따라 달라집니다.
CMD ["fresh"]
Dockerfile을 성공적으로 빌드하고 실행하면 CMD가 실행됩니다. 어떤 명령을 실행하려면 CMD를 그렇게 간단하게 사용하십시오. 여기서는 docker run 또는 project를 실행할 때 docker 내부의 명령에서 자동으로 실행되기 때문에 새로운 명령을 사용합니다.
일단 docker 파일이 준비되면 docker 애플리케이션을 빌드할 수 있습니다.
docker build -t docker-golang.
도커 응용 프로그램을 빌드합니다. 여기서 -t 플래그는 빌드된 리포지토리 또는 이미지에 지정된 이름입니다.
일단 성공적으로 이미지를 빌드했습니다. 당신은 실행할 준비가되었습니다
docker run -d -p 8090:8090 -v $(pwd):/go/src/app --env EXAMPLE_ENV_SETUP=test_value_env --name golang-env docker-golang
docker run 명령은 생성된 이미지 위에서 실행됩니다.
-d //runs docker image in backgroud (optional)
-p is the port number to run the docker,left:right indicates the port to run outside and inside docker container.
-v //volume created that represents the direcory of file outside and inside docker repository
--env //enviroment value needed while running the project
--name //name of the container which makes easy to remember rather using container id
--docker-golang //name of image or image id you created while building docker
데몬 모드에서 도커 실행 후 다음을 사용하십시오.
docker ps
도커 내부에서 실행 중인 인스턴스를 알기 위해.
산출:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ed07831e976a docker-icinga-env "fresh" About an hour ago Up About an hour 0.0.0.0:8090->8090/tcp golang-env
브라우저 localhost:8090을 통해 액세스할 수 있는 도커 내부에 실행 중인 인스턴스가 있습니다.
이제 실행 중인 컨테이너에서 다음 명령을 실행합니다.
docker exec -it <runnning container name or id> /bin/bash
이렇게 하면 컨테이너 golang-env에 새 Bash 세션이 생성됩니다. 이 명령은 실행 중인 인스턴스가 있으므로 로그를 확인하고 원하는 모든 작업을 수행할 수 있는 실행 중인 명령 내부로 이동합니다. 정말 쉬워요
Reference
이 문제에 관하여(도커 살펴보기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/samsha1/walk-through-docker-5bm3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)