Windows에서 IIS 웹 사이트 개발 환경을 작성하려면(시리즈 2)

9832 단어 IISDockerWindows
업데이트 ~
나는 6월 15일에 투고하였는데, 오늘 가장 중요한 절차를 쓰지 않은 것을 발견하였다.미안합니다.컨테이너에 호스트 폴더 마운트 시 docker run 섹션으로 지정됩니다.

목표


Docker for Windows를 사용하여 매우 초보적인 IIS 사이트를 실행하고 호스트 측 파일이 용기에 있는 사이트에 반영되기 전의 절차를 설명합니다.

IIS 저장소 다운로드


Docker 허브의 Microsoft 공식 IIS 레지스트리-v C:\dev\mysite:C:\mysite를 지정합니다.

내 경우 호스트에 이미지가 이미 있습니다. 그렇지 않으면 다운그레이드하고 내보내는 데 시간이 걸릴 수 있습니다.

시작 컨테이너


다음 명령을 사용하여 IIS 이미지를 컨테이너로 실행합니다.
  • Docker pull 옵션은 PowerShell을 지정합니다.컨테이너가 실행되기 시작하면 PowerShell 콘솔이 먼저 시작됩니다.
  • -entrypoint 옵션은 호스트의 CMD 명령줄을 컨테이너에서 실행되는 PowerShell과 대화식으로 연결합니다.
  • -it 옵션은 호스트 포트 8080과 컨테이너 컴퓨터 포트 80을 연결합니다.(이번에 컨테이너에 직접 액세스한 IP는 호스트가 적당하면 된다)
  • 컨테이너가 시작되면 콘솔에 PowerShell 명령줄이 표시됩니다.이 PowerShell은 컨테이너로 실행되는 거지~, 대단해!

    예를 들어, -p 명령으로 드라이브의 내용을 표시해 보십시오.나는 네가 매우 상쾌하다는 것을 안다.컨테이너 드라이브라서 최소한의 물건밖에 없어요.

    겸사겸사 말씀드리지만, 컴퓨터 이름을 찾아볼게요.
    dir라는 이름.
    흥미로운 것은 이 컴퓨터 이름이 실제로 컨테이너의 ID라는 것이다.

    브라우저에서 IIS 확인


    어렵게 IIS 컨테이너를 실행했기 때문에 IIS (웹 서비스) 에 액세스할 수 있는지 확인하십시오.
    먼저 컨테이너의 컴퓨터 IP 주소를 조사합니다.IP 주소는 명령이 내보내는 JSON 데이터에 있습니다.먼저 JSON 데이터를 모두 로컬 파일로 복사합니다.ED9E6FA67BF9 명령은 컨테이너 ID를 지정합니다.

    IP 주소를 찾았습니다.

    이 IP 주소는 네트워크의 다른 IP 주소와 같을 수 있습니다docker inspect.이런 분위기는 마치 컨테이너 기술과 가상 기기 기술이 혼란스러운 원인인 것 같다."가상화"가 아니라 "격리"된 것입니다.
    그럼 브라우저에서 확인해 보세요.참고로 포트는 기본 80이므로 지정할 필요가 없습니다.

    익숙한 IIS 기본 화면이 표시됩니다.
    이 페이지는 컨테이너 docker inspectping 에 해당합니다.

    실험용으로 간단한 다른 텍스트 파일을 넣읍시다.
    C:\inetpub\wwwroot 파일이 나왔습니다.
    이 파일도 브라우저에서 확인해 보세요.

    잘 방문했습니다.이런 느낌은 용기 안의 파일 시스템을 자유롭게 바꿀 수 있다.
    그럼 컨테이너를 잠시 멈추세요.PowerShell을 iisstart.htm 로 지정하여 PowerShell을 종료하면 컨테이너를 종료합니다.

    호스트의 CDM 알림으로 무사히 돌아왔습니다~

    Docker에서 작업 볼륨 설정


    Docker 컨테이너를 사용하여 개발 중인 웹 응용 프로그램을 테스트하는 경우 응용 프로그램의 내용을 쉽게 변경할 수 있는 환경이 필요합니다.
    이렇게 하려면 Docker의 볼륨 기능을 사용하십시오.
    Docker에서 간단하게 볼륨을 설정하는 방법 중 두 가지를 설명합니다.

    [방법1] 마운트 호스트 측 디렉토리


    호스트의 폴더를 컨테이너 드라이브의 일부로 연결합니다.

    호스트 측은 매우 간단한 사이트를 제공한다.

    다음에 Docker 컨테이너를 실행할 때 호스트 측의 폴더를 컨테이너 측의 폴더로 지정합니다(존재하지 않을 수도 있습니다).test.txt 옵션이 이 섹션입니다.

    용기가 시작되면 PowerShell 명령이 나타나면 IIS를 비추는 entrypoint 디렉터리를 용기 옆에 표시합니다.(아래 PowerShell 명령을 위쪽에서 아래쪽으로 차례로 실행하십시오.)

    예상대로 기본 -v 에 매핑됩니다.익숙한 IIS 페이지가 여기 있군요.
    이제 마운트된 호스트의 폴더를 표시하도록 변경할 수 있습니다.이 작업에는 PowerShell 모듈의 Default Web Site 이 사용됩니다.이 작업은 Docker와 관련이 없습니다.단순한 PowerShell 작업입니다.

    변경 완료.브라우저에서 확인해 봅시다.

    올바르게 마운트된 호스트 측 폴더에 매핑되었습니다.

    호스트에서 웹 사이트 편집 시도


    어렵기 때문에 호스트 쪽에서 사이트 내용을 살짝 변경해 보려고 합니다.

    이런 느낌으로 단락을 넣었어요.
    브라우저에서 확인해 보세요.

    잘 반영됐네~

    [메서드 2] 컨테이너 측 디렉토리 액세스


    다음은 Docker에서 컨테이너에 새 볼륨을 지정하고 호스트에서 새 볼륨에 액세스하는 절차를 설명합니다.

    이미지에 원래 없는 볼륨(Windows의 경우 최상위 디렉토리로 간주)이 없는 경우에도 컨테이너를 실행할 때 새 볼륨을 생성하도록 지정할 수 있습니다.다음C:\inetpub\wwwroot 옵션은 컨테이너 측면에 생성됩니다WebAdministration.
    Set-ItemProperty이 생성되었습니다.

    적당히 서류를 조작해 보세요.
    -v C:\mywebapp 파일(PowerShell 작업일 뿐 Docker와 무관)
    하지만 PowerShell을 사용하여 파일과 디렉토리를 조작하는 것은 번거롭습니다.본체 측에서 용기 안에 있는 이 볼륨의 내용을 조작하고 싶으시죠.한번 해보자.

    호스트 측면에서 컨테이너의 작업 볼륨 내용 변경


    우선 용기의 메타데이터를 조사하고 싶어서 실행C:\mywebapp.

    다음은 볼륨과 관련된 설정을 찾습니다.다음과 같이 지정된 Docker 관리 디렉토리 정보를 찾습니다.

    Windows 자원 관리자로 이 디렉터리를 표시해 보세요.예제의 파일C:\mywebapp을 볼 수 있습니다.

    파일을 변경합니다.

    어쨌든 저장을 시도하면 접근 권한과 관련된 오류가 발생합니다.

    여기서 파일의 보안 설정을 변경하고 호스트 사용자에게 변경 사항을 쓸 수 있는 권한을 부여합니다.

    이렇게 하면 틀리지 않고 저장할 수 있다.
    참고 호스트가 액세스 권한을 변경한 경우 Docker 엔진에 어떤 영향을 미치는지 알 수 없습니다.Docker 관리 볼륨의 장점을 고려하면 이 해커가 좋지 않은 영향을 미칠 가능성을 배제할 수 없다.자신의 책임을 잘 보살펴 주십시오!
    마지막으로 용기의 내용이 변경되었는지 확인해 보세요.

    호스트의 변경 사항을 볼 수 있습니다.

    총결산


    나는 IIS의 Docker 이미지로 매우 간단한 사이트 개발 환경을 만들어 보았다.ASP.NET야, ASP.NETCOre 같은 것도 대체적으로 같은 패턴으로 Docker 컨테이너를 사용할 수 있겠지.

    좋은 웹페이지 즐겨찾기