Docker 결합.Net Core 의 초기 사용 튜 토리 얼
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 사용 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swarm의 도커 비밀이 게시물에서는 Redis를 사용한 실제 시나리오 예제를 제공하여 사용 방법을 보여주고자 합니다. Docker 기술에 대한 기본 지식 Docker Swarm 오케스트레이터에 대한 기본 지식 "Docker Swarm ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.