Dockerfile에서 Docker 인스턴스를 실행하는 방법은 무엇입니까?

Dockerfileeseo Docker Inseuteonseuleul Silhaenghaneun Bangbeob Eun Mueos Ibnikka



Docker는 컨테이너화된 환경에서 애플리케이션을 구축, 테스트, 배포 및 제공하는 데 보편적으로 사용되는 인기 있는 개방형 플랫폼입니다. Docker는 OS 수준의 가상화를 사용하며 Docker 컨테이너, 이미지, 네트워크, Docker 볼륨과 같은 다양한 구성 요소를 지원합니다.

Docker 컨테이너는 Docker 이미지를 사용하여 프로그램, 구성 설정 및 종속성을 패키징하는 Docker 플랫폼의 필수 구성 요소 중 하나입니다. Docker 이미지는 애플리케이션을 컨테이너화하는 방법을 컨테이너에 안내하는 컨테이너의 간단한 템플릿 또는 스냅샷입니다. 이러한 이미지는 대부분 공식 Docker 허브 레지스트리에서 사용할 수 있습니다. 사용자는 Dockerfile을 사용하여 프로젝트 요구 사항에 따라 이러한 이미지를 디자인할 수도 있습니다.

이 블로그에서는 다음 내용을 설명합니다.







Dockerfile이란 무엇입니까?

Dockerfile은 Docker 컨테이너의 기본 구조를 정의하는 명령과 지침이 포함된 일반 텍스트 파일입니다. 이러한 명령은 파일 없이 터미널에서 실행할 수 있지만 각 명령을 하나씩 실행하는 것은 바쁘고 복잡한 작업입니다. Dockerfile을 사용하면 개발자가 모든 요구 사항과 지침을 하나의 파일에 쉽게 지정할 수 있습니다. 그런 다음 이 파일은 Docker 이미지인 컨테이너 템플릿을 빌드하는 데 사용됩니다. 그런 다음 Docker 이미지가 실행되어 Docker 컨테이너에서 인스턴스를 시작합니다.



Dockerfile의 기본 명령

컨테이너의 기본 스냅샷을 정의하는 데 사용되는 Dockerfile의 일부 기본 명령은 아래 표 형식으로 나열되어 있습니다.



명령 설명
에서 에서 ” 명령은 컨테이너 템플릿의 기본 이미지를 정의하는 데 사용됩니다. 이러한 이미지는 공식 Docker 레지스트리 Docker Hub에서 가져옵니다.
유지관리자 유지관리자 ” 명령은 Docker 이미지를 생성하는 작성자(이름 및 이메일) 정보를 정의합니다.
작업 디렉터리 컨테이너화된 애플리케이션의 작업 디렉터리를 지정합니다.
복사 호스트 시스템의 소스 및 구성 파일을 Docker 컨테이너의 지정된 경로로 복사하는 데 사용됩니다.
추가하다 추가하다 ” 명령은 “ 복사 ” 명령이지만 GitHub 저장소에서 컨테이너 경로로와 같이 URL에서 컨테이너 경로로 파일을 추가하는 원격 URL도 지원합니다.
달리다 달리다 ”는 컨테이너에서 명령을 실행하는 데 사용됩니다. Dockerfile에서는 컨테이너 내부의 추가 종속성을 관리하고 설치하는 데 주로 사용됩니다.
명령 명령 ”는 Docker 컨테이너의 기본 지점을 정의합니다. 기본적으로 '의 실행 파일과 기본 매개 변수를 정의합니다. 진입 지점 '.
진입 지점 진입 지점 ” 명령은 Docker 컨테이너의 실행 파일을 설정하는 데에도 사용됩니다. 기본적으로 매번 컨테이너에서 사용되는 기본 애플리케이션을 설정합니다. ENTRYPOINT 명령은 Dockerfile에서도 한 번 사용됩니다.
사용자 컨테이너에서 명령어를 실행하기 위한 UID(사용자 이름)를 설정하는 명령어입니다.
용량 용량 ” 명령은 외부 볼륨(파일 시스템)을 컨테이너와 바인딩하거나 마운트하는 데 사용됩니다.
환경 환경 ” 명령은 컨테이너의 환경 변수를 설정하는 데 사용됩니다.
ARG ARG ”는 컨테이너 내부에 인수를 전달하는 데 사용됩니다.
폭로하다 폭로하다 ” 명령은 컨테이너가 실행될 노출 포트를 지정합니다.
온빌드 기본 이미지에서 지침을 읽지만 다운스트림 이미지를 통해 이러한 지침을 트리거합니다.
상표 상표 ”는 컨테이너 스냅샷의 메타데이터를 지정하는 데 사용됩니다.

Docker의 Dockerfile에서 Docker 인스턴스를 실행하는 방법은 무엇입니까?

Dockerfile을 사용하여 Docker 인스턴스 또는 컨테이너를 실행하려면 먼저 Dockerfile을 생성하세요. 그런 다음 Dockerfile을 사용하여 컨테이너의 기본 스냅샷을 만듭니다. 그런 다음 스냅샷을 실행하여 Docker 인스턴스를 시작합니다.





예시를 보려면 아래 지침을 따르세요.

1단계: Dockerfile 만들기

먼저 Dockerfile을 만듭니다. Dockerfile에는 파일 확장자가 없습니다. 그런 다음 다음 명령을 파일에 붙여넣습니다.



골랑에서: 1.8

작업 디렉터리 / 가다 / 소스 /

main.go를 복사하세요.

실행하고 빌드하세요 -영형 웹 서버 .

폭로하다 8080 : 8080

진입 지점 [ './웹 서버' ]

2단계: 프로그램 파일 만들기

다음으로 '라는 이름의 새 파일을 만듭니다. main.go ”에는 간단한 Golang 프로그램이 포함되어 있습니다. 이를 위해 다음 프로그램을 파일에 붙여넣습니다.

패키지 메인
수입 (
'fmt'
'통나무'
'넷/http'
)

기능 핸들러 ( ~ 안에 http.ResponseWriter, r * http.요청 ) {
fmt.Fprintf ( ~ 안에 , '안녕하세요! LinuxHint 튜토리얼에 오신 것을 환영합니다.' )
}
메인 기능 ( ) {
http.HandleFunc ( '/' , 핸들러 )
로그.치명적 ( http.ListenAndServe ( '0.0.0.0:8080' , 없음 ) )
}

3단계: 컨테이너 스냅샷 생성

이제 '를 사용하여 컨테이너의 Docker 스냅샷을 빌드합니다. docker build -t <이미지 이름> -f . ':

도커 빌드 -티 go-img -에프 도커파일 .

위 명령에서 ' -티 ” 옵션은 이미지의 이름이나 태그를 설정합니다. “ -에프 ” 옵션은 Docker 엔진이 빌드 컨텍스트를 읽어야 하는 Dockerfile의 경로를 지정합니다.

이미지가 성공적으로 생성되었는지 확인하려면 “ docker 이미지 <이미지 이름> ' 명령:

도커 이미지 go-img

출력에는 Dockerfile에서 컨테이너의 스냅샷이 성공적으로 생성되었음을 보여줍니다.

4단계: 스냅샷을 실행하여 컨테이너 실행

이제 위 단계에서 생성된 컨테이너의 스냅샷을 실행하여 Docker 컨테이너에서 Docker 인스턴스를 시작합니다.

도커 실행 -피 8080 : 8080 --이름 계속하다 -디 go-img

위 명령에서 ' -피 ” 옵션은 “에서 컨테이너를 실행합니다. 8080 ' 포트, ' -이름 '는 컨테이너의 이름을 설정하고 ' -디 ” 옵션은 분리 모드(백그라운드 서비스)에서 컨테이너를 실행합니다.

컨테이너가 실행 중인지 확인하려면 ''를 사용하여 실행 중인 컨테이너를 나열하세요. 도커 ps ' 명령:

도커 추신

이제 ' http://localhost:8080 ”를 확인하고 애플리케이션이 노출 포트에서 실행 중인지 확인합니다.

위 출력은 Dockerfile을 사용하여 Docker 인스턴스를 효과적으로 시작했음을 나타냅니다.

Docker Compose의 Dockerfile에서 인스턴스를 실행하는 방법은 무엇입니까?

Docker Compose는 한 번에 여러 컨테이너에서 여러 인스턴스를 실행할 수 있게 해주는 Docker 플랫폼의 또 다른 주요 플러그인입니다. 사용자는 Docker 작성 플러그인을 사용하여 Dockerfile에서 Docker 인스턴스를 실행할 수도 있습니다. 설명을 위해 주어진 단계를 따르십시오.

1단계: Dockerfile 만들기

먼저 Dockerfile을 만듭니다. 예를 들어, 위 섹션에서 사용된 것과 동일한 Dockerfile 및 프로그램 파일을 사용하고 있습니다.

골랑에서: 1.8

작업 디렉터리 / 가다 / 소스 /

main.go를 복사하세요.

실행하고 빌드하세요 -영형 웹 서버 .

폭로하다 8080 : 8080

진입 지점 [ './웹 서버' ]

2단계: docker-compose.yml 파일 만들기

다음으로 ' docker-compose.yml ” 파일을 복사하고 다음 키 쌍을 파일에 복사합니다.

버전: '삼'

서비스:

편물:
짓다: .
포트:
- 8080 : 8080

위에서 언급한 부분에서:

  • 서비스 ”는 별도의 컨테이너에서 실행될 구성 서비스를 지정하는 데 사용됩니다. 설명을 위해 우리는 하나의 서비스만 구성했습니다. 편물 ” 코드를 깨끗하고 단순하게 유지합니다.
  • 짓다 ” 키 쌍은 Dockerfile에서 빌드 컨텍스트를 읽는 데 사용됩니다. 여기에서 docker는 Dockerfile의 지침을 읽고 그에 따라 컨테이너를 빌드합니다.
  • 포트 ” 키는 컨테이너가 실행될 노출 포트를 정의합니다.

3단계: Docker 인스턴스 시작

이제 '를 사용하여 컨테이너에서 Docker 인스턴스를 실행합니다. 도커 작성 ' 명령:

도커 작성 -디

확인을 위해 '를 사용하여 실행 중인 Compose 컨테이너 목록을 확인하세요. 도커 작성 ps ' 명령:

도커 작성 추신

출력은 ' 편물 ” 서비스가 “에서 성공적으로 실행되고 있습니다. golangapp-web-1 ” 컨테이너:

Compose 서비스의 노출 포트로 이동하여 프로그램이 실행 중인지 확인합니다. 아래 결과는 Docker compose를 사용하여 Dockerfile에서 Docker 인스턴스를 성공적으로 시작했음을 보여줍니다.

Dockerfile에서 Docker 인스턴스를 실행하는 것이 전부입니다.

결론

Dockerfile의 컨테이너에서 Docker 인스턴스를 실행하려면 먼저 Dockerfile을 생성하세요. Docker 컨테이너의 이미지 또는 템플릿을 생성하려면 파일 내에 명령을 추가하세요. 그런 다음 '를 사용하여 컨테이너 이미지 또는 스냅샷을 만듭니다. docker build -t <이미지 이름> -f . ' 명령. 이제 컨테이너 이미지를 실행하여 Docker 인스턴스를 시작합니다. 사용자는 Docker compose를 사용하여 Dockerfile에서 Docker 인스턴스를 실행할 수도 있습니다. 이 게시물에서는 Dockerfile에서 Docker 인스턴스를 실행하는 방법을 설명했습니다.