Docker 결합.Net Core 의 초기 사용 튜 토리 얼

8335 단어 docker.netcore
머리말
Docker 는 비교적 유행 하 는 용기 화 기술 로 개발 자 들 이 응용 프로그램 과 응용 의존 환경 을 가방 에 의존 하여 용기 에 포장 한 다음 에 용 기 를 생산 환경 에 배치 하면 됩 니 다.응용 프로그램 이 서로 다른 서버 환경 에 배치 하 는 데 발생 하 는 문 제 를 해결 할 수 있 습 니 다.(많은 개발 자 들 이 응용 프로그램 이 자신의 로 컬 서버 에서 잘 뛰 는 것 을 만난 적 이 있 습 니 다.생산 환경 에 배치 하면 운행 할 수 없고 각종 기이 한 꽃 들 의 이상)은'한 번 의 구축,곳곳에서 운행'을 실현 했다.
공식 적 으로 서로 다른 시스템 에 대한 Docker 버 전 을 제 공 했 습 니 다.오늘 우 리 는 windows 시스템 을 바탕 으로 어떻게 사용 하 는 지 간단하게 소개 합 니 다.
Windows 배포 Docker
현재 공식 적 으로 발 표 된 Docker 데스크 톱 버 전 은 Windows 10 64-bit:Pro,Enterprise(기업 버 전),Education(교육 버 전)만 지원 하고 다른 windows 운영 체제 버 전 은 Docker 를 사용 하려 면 공식 적 으로 발 표 된 Docker ToolBox 도 구 를 사용 해 야 합 니 다.
1.우선,우 리 는 Git 에 Docker ToolBox(https://github.com/docker/toolbox/releases)를 다운로드 합 니 다.
주의 점:1)windows 7 이상 64 비트 운영 체제 가 필요 합 니 다.
2)시스템 의 가상 화(Hyper-V)기능 활성화
2.다운로드 가 완료 되면 바로 두 번 눌 러 서 시작 합 니 다DockerToolbox-19.03.1.exe설치 프로그램.지시 에 따라 아래로 집행 하면 됩 니 다.

3.설치 에 성공 하면 데스크 톱 에 다음 세 개의 아이콘 이 나타 납 니 다.

1)Docker QuickStart 셸-Docker 가 설 정 된 명령 행 환경 입 니 다.docker 를 시작 합 니 다.2)Oracle VM Virtualbox-가상 컴퓨터,windows 시스템 은 Liux 가상 환경 3)Kitematic-Docker 의 GUI 버 전 으로 이전 두 드 리 기 명령 행 에 비해 조작 이 간단 하 다.
4.docker 시작
데스크 톱 에 있 는 Docker QuickStart 셸 의 단축 키 를 두 번 누 르 면 프로그램 창 에'고래'가 표시 되면 시작 에 성공 했다 는 뜻 입 니 다.

여기 서 우 리 는 시작 이 성공 한 후에 우리 에 게 IP 주 소 를 제공 하 는 것 을 볼 수 있 습 니 다.192.168.99.100.여러분,여기 서 주의해 야 합 니 다.뒤에 제 가 구체 적 으로 설명 하 겠 습 니 다.
Docker 기본 사용
1.이미지 파일
Docker 용 기 는 응용 프로그램 과 의존 도 를 image 파일 에 압축 합 니 다.그리고 image 파일 을 통 해 Docker 용 기 를 생 성 합 니 다.image 파일 은 용기 의 템 플 릿 으로 사용 할 수 있 고 하나의 image 파일 은 여러 개의 용 기 를 동시에 실행 할 수 있 습 니 다.
이미지 조작:
1.모든 이미지 보기
$ docker image ls

2.창고 에서 사용 가능 한 이미지 가 져 오기
$docker image pull(image file address)

3.이미지 파일 삭제
$docker image rmi(image file ID)
우 리 는 스스로 이미지 파일 을 만 들 수도 있 고 창고 에서 다른 사람 이 올 린 이미지 파일 을 직접 끌 어 올 릴 수도 있다.Docker Hub 는 이미지 파일 의 업로드 와 다운 로드 를 제공 하여 파일 의 공용 을 실현 합 니 다.
2.용기 용기 용기
앞에서 말 했 듯 이 Docker 용 기 는 image 파일 에 의 해 생 성 되 었 지만 Docker 용기 가 생 성 된 후에 image 파일 과 구별 되 었 습 니 다.키워드'container'를 통 해 용 기 를 조작 해 야 합 니 다.

#          
$ docker container ls

#       ,         
$ docker container ls --all

#      
$ docker container kill (  ID)

#    
$ docker container rm (  ID)
이미지 파일 을 삭제 할 때 이미지 파일 에 의존 하여 생 성 된 용기 가 존재 한다 면 용 기 를 삭제 해 야 이미지 파일 을 삭제 할 수 있 습 니 다.
3.Dockerfile 파일
앞에서 이미지 파일 과 용기 파일 을 소 개 했 는데 이미지 파일 과 용 기 는 구체 적 으로 어떻게 생 성 되 었 습 니까?실제 프로젝트 에서 image 파일 의 생 성 은 dockerfilew 파일(접미사 가 없 는 텍스트 파일)에 의존 해 야 합 니 다.dockerfile 을 image 파일 을 만 드 는 프로필 로 이해 할 수 있 습 니 다.자주 사용 하 는 설정 노드 를 간단하게 소개 합 니 다.
1)FROM:기본 미 러 를 설정 합 니 다.즉,뒤에 생 성 할 미 러 는 이 기본 을 바탕 으로 합 니 다.
2)WORKDIR:image 파일 의 작업 디 렉 터 리 지정
3)COPY:형식:copy[원본 주소][대상 주소],원본 주소 파일 을 image 파일 의 대상 주소 로 복사 합 니 다.
4)EXPOSE:용기 의 외부 포트 노출
5)ENTRYPOINT:용기 가 실 행 된 후 기본적으로 실 행 된 cmd 명령.
샘플:

FROM microsoft/dotnet:2.2-aspnetcore-runtime 
WORKDIR /app  #       /app
COPY . .  #.                           image          
EXPOSE 7000  #      7000  
ENTRYPOINT ["dotnet", "NetCoreSqlSugar.dll"] #     ,    cmd  :dotnet NetCoreSqlSugar.dll
4.이미지 파일 과 용기 생 성
dockerfile 파일 이 있 으 면 다음 cmd 명령 을 통 해 image 파일 과 용 기 를 만 들 수 있 습 니 다.
1)우선 cmd 에서 dockerfile 이 있 는 파일 디 렉 터 리 를 찾 습 니 다.

2)이미지 파일 생 성

$ docker image build -t myimage .
-t 인자:image 파일 이름 을 지정 합 니 다.my image 는 파일 이름 입 니 다."."마지막 으로 기호 가 있 습 니 다.여 기 는 dockerfile 파일 의 경 로 를 표시 합 니 다.

생 성 에 성공 한 후,우 리 는 명령 docker image ls 를 통 해 image 파일 이 이미 존재 하 는 것 을 볼 수 있 습 니 다.
3)용기 생 성

$ docker container run -p 8001:7000 -it -d myimage
-p 매개 변수:용기 의 7000 포트 가 호스트 의 8001 포트 에 매 핑 됩 니 다.-it 매개 변수:용기 의 Shell 이 현재 Shell 에 비 친 다음 이 컴퓨터 창 에 입력 한 명령 이 용기 에 전 달 됩 니 다.my image:image 파일 의 이름(탭 이 있 으 면 탭 을 제공 해 야 합 니 다.기본 값 은 latest 탭 입 니 다)-d 매개 변수:용기 가 시 작 된 후 배경 에서 실 행 됩 니 다.

용기 가 생 성 된 후,우 리 는 명령 docker container ls 를 통 해 실행 중인 용 기 를 볼 수 있 습 니 다.
.NetCore WebApi 배치 docker
자,앞에서 우 리 는 Docker 의 간단 한 입문 을 간단하게 소 개 했 습 니 다.다음은.netcore webapi 응용 프로그램 과 결합 하여 실제 프로젝트 에서 Docker 를 어떻게 사용 하 는 지 구체 적 으로 말씀 드 리 겠 습 니 다.
1.NetCore WebApi 프로젝트 를 새로 만 들 고 docker 지원 을 사용 합 니 다.

만 든 항목 이 docker 를 사용 하 는 것 을 잊 어 버 리 면 걱정 하지 않 아 도 됩 니 다.항목 을 오른쪽 단추 로 눌 러 서-->docker 지원 을 추가 할 수 있 습 니 다.
2.dockerfile 파일 을 수정 합 니 다.다음 과 같 습 니 다.

FROM microsoft/dotnet:2.2-aspnetcore-runtime 
WORKDIR /app 
COPY . .
EXPOSE 7000
ENTRYPOINT ["dotnet", "NetCoreSqlSugar.dll"]
dockerfile 파일 의 오른쪽 단추 인 속성 입 니 다.항상 복 사 를 선택 하면 디 렉 터 리 에 직접 발표 할 수 있 습 니 다.

3.프로그램 포트 번호 수정(Program.cs 파일)

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
      WebHost.CreateDefaultBuilder(args)
        .UseUrls("http://*:7000")
        .UseStartup<Startup>();
저 는 가장 간단 한 방식 으로 UseUrls 방법 으로 포트 번 호 를 정 의 했 습 니 다.실제 프로젝트 에 서 는 여러분 이 이렇게 사용 하 는 것 을 추천 하지 않 습 니 다.게 으 름 을 피우다.하하.
4.프로젝트 발표
실행 디 렉 터 리 에 프로그램 을 발표 하면 발표 디 렉 터 리 에 dockerfile 파일 이 하나 더 있 는 것 을 발견 할 수 있 습 니 다.
5.이미지 파일 과 용기 생 성

#  image  
$ docker image build -t myimage .

#       
$ docker container run -p 8001:7000 -it -d myimage
여기까지 와 서 기본적으로 우 리 는 임 무 를 모두 완수 했다.근 데 windows 를 사용 하 는 친구 들 은 우리 가 사용 할 때http://localhost:8001/api/ValuesAPI 응용 프로그램 템 플 릿 인터페이스 에 접근 할 때 실행 할 수 없습니다.그럼 문제 가 생 겼 습 니까??
여기 서 우 리 는 docker 로 돌아 가 시작 합 니 다.docker 가 시작 한 후에 우리 에 게 IP 주 소 를 제공 할 것 입 니 다.192.168.9.9100.그렇다면 이 IP 는 도대체 무엇 에 쓰 이 는 것 일 까?
우 리 는 Docker 가 Linux 에서 실행 되 고 Windows 에서 docker 를 실행 하 는 지 알 고 있 습 니 다.실제로 Windows 에서 Linux 가상 환경 을 설치 한 다음 에 실행 되 는 docker 입 니 다.즉,응용 프로그램 에서 사용 하 는 localhost 는 이 Linux 환경의 주 소 를 가리 키 며,우리 의 숙주 환경 인 윈도 우즈 가 아니다.이제 모두 문득 크게 깨 달 았 다.브 라 우 저 에 입력:http://192.168.99.100:8001/api/Values 역시 정상 방문 이 네요.
Nginx 랜 접근 실현
위 에서 저 희 는 로 컬 에서 192.168.9.9100 이라는 IP 를 통 해 용기 에 있 는 API 인 터 페 이 스 를 방문 할 수 있 지만 다른 동료 에 게 접근 할 수 없습니다.전단 시간 에 Nginx 를 만 났 기 때문에 여 기 는 과감하게 나 와 Nginx 의'역방향 대리'를 통 해 이 문 제 를 해결 했다.왜 이런 방식 을 선 택 했 는 지 에 대해 서도 사실은 자신 이 Nginx 의 사용 을 되새 기 고 싶 어서 작은 이기 적 인 것 이다.Nginx 의 사용 에 대해 저 는 더 이상 말 하지 않 겠 습 니 다.관심 이 있 는 친구 들 은 가서 알 아 볼 수 있 습 니 다.
Nginx 설정

upstream serlist{
  server 192.168.99.100:8001;#      
  }

  server {
    listen    8001;
    server_name 192.168.60.4;#    

    #charset koi8-r;

    #access_log logs/host.access.log main;

    location ~ {
      proxy_pass http://serlist;
      
      proxy_connect_timeout 10; #        60 
      proxy_send_timeout 10;   #        60 
      proxy_read_timeout 10;   #        60 
    }
   }
상기 설정 이 있 으 면 랜 안의 동료 들 은 제 Windows 아래 의 이 컴퓨터 주 소 를 통 해 192.168.60.4:8001 로 제 컴퓨터 용기 안의 인 터 페 이 스 를 직접 방문 하여 디 버 깅 호출 을 편리 하 게 할 수 있 습 니 다.
이상 의 학습 내용 이 부족 한 점 이 있 으 니 여러분 의 많은 교 류 를 환영 합 니 다.
총결산
Docker 결합.Net Core 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 Docker 결합.Net Core 사용 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기