[Docker] 처음으로 docker로 이미지 만들기

8203 단어 Docker
https://docker-curriculum.com/
여기 기억에 남는 걸 읽었다고!
웹 페이지 정보
http://docs.docker.jp/engine/userguide/dockerizing.html
나는 매일 백엔드에 접근하는 일을 몰랐으면 좋겠다고 생각했다
우선 도커를 배워보자.

docker 잘하는 곳!


Virtual Box 같은 것보다 가볍습니다.
원래 구성이 다른 것 같아요.여기는 깊게 닿지 않는다.
https://qiita.com/supaiku2452/items/8b06b774c0e2fce7df92
이 방면이 참고가 되었다.

Hello world!(다운로드~동작 확인)


먼저 docker 다운로드
Mac https://docs.docker.com/docker-for-mac/install/
Windows https://docs.docker.com/docker-for-windows/install/
Linux https://docs.docker.com/install/linux/docker-ce/ubuntu/
다운로드가 끝난 후 Mac로 터미널 열기
docker run hello-world
그러면
Hello from Docker.
This message shows that your installation appears to be working correctly.
...
잘 될 거예요.

docker의 용어와 간단한 구조


대충 1
container··docker가 응용 프로그램을 시작하는 가상 환경의 프레임워크
이미지... 그 컨테이너를 가동할 때 사용하는 컨테이너의 디자인이 적혀 있어요.
docker daemon·container 관리, 제어
docker client//docker daemon과 교환할 수 있는 명령줄 도구
docker hub···image의 이미지 같은 디렉터리를 등록했습니다
프로세스로 docker hub pull image (가져오기)
그 그림에 따라 컨테이너를 만들어요.
이런 느낌.

컨테이너를 즉시 처리하다


우선, docker hub pull에서 용기의 원래 이미지가 됩니다.
이번엔 당겨봐busybox.
docker pull busybox
컨테이너 생성 및 시작
docker run busybox
언뜻 보기에는 아무것도 움직이지 않은 것 같은데 명령을 내지 않아 시동이 걸렸고 아무것도 실행되지 않은 것 같다.
docker run busybox echo "hello from busybox"
이것을 입력하면 echo 실행 중임을 분명히 알 수 있습니다.docker ps 명령이 현재 시작되는 컨테이너 목록을 표시합니다.
현재 이동하지 않은 컨테이너를 표시할 때-a 옵션입니다.
docker ps -a
컨테이너에 들어가서 다양한 조작을 하고 싶을 때.
docker run -it busybox sh
네.-i-t 옵션으로 용기 내부의 명령줄을 조작할 수 있습니다.
옵션과 지령에 곤란을 느끼면 사용하세요--help.
docker run -- help
// 以下オプション等の説明がずらっと出力される

컨테이너 삭제


이렇게 run용기를 자꾸 생성하면 메모리가 제한된다.docker ps -a에서 삭제할 컨테이너 ID를 확인한 후 다음 명령을 사용하여 컨테이너를 삭제합니다.
docker rm 305297d7a235(削除したいコンテナのdocker id)
여러 개 삭제할 수 있지만, docker id를 복사할 때마다 번거롭습니다.다음 명령을 사용하십시오
docker rm $(docker ps -a -q -f status=exited)
-q에는 id의 숫자만 표시되고 -f에는 특정 상태의 용기만 필터됩니다.
이 경우 상태는 exited의 모든 컨테이너 ID를 표시하고 한 번에 삭제합니다.
새 버전의 docker라면 다음 명령은 같은 행동을 할 것입니다.러딩!
docker container prune
참고로 하나하나 삭제하는 것이 번거롭다면 컨테이너를 자동으로 삭제하는 편리한 옵션--rm도 있다.
docker run --rm (任意のimage) 

이미지 목록 확인 및 삭제


목록 보기
docker image
더 이상 필요하지 않은 이미지를 삭제하려는 경우
docker rmi 305297d7a235(削除したいimageのimage id)
이미지를 한 번에 삭제할 수도 있습니다!(댓글로)
태그가 없고 컨테이너에서 참조되지 않은 이미지가 삭제됩니다.
docker image prune

정적 웹 사이트 실행


Let's begin. The image that we are going to use is a single-page website that I've already created for the purpose of this demo and hosted on the registry - prakhar1989/static-site.
https://docker-curriculum.com/
우리를 위해 원래의 그림을 준비했다.
이쪽 명령으로 시동 걸어.
docker run --rm prakhar1989/static-site
참고로 이번처럼 로컬에 이미지가 없는 상태에서run이면 자동으로 이미지가 나온다.Nginx is running...에 성공이 표시됩니다.
....그럼 사이트는 어떻게 봐요?
이렇게 되면 사실상 포트가 발행되지 않는다.Ctrl + c 용기를 잠시 멈추다.
우선 사이트를 시작할 때 편리한 터치 모드가 있다.컨테이너에 들어가지 않고 백스테이지에서 컨테이너를 가동하는 모드다.신나는 이야기를 하려면 터미널을 닫아도 컨테이너를 계속 가동할 수 있다는 점이다.옵션-d에서 터치 모드로 변경됩니다.
그리고 -P 옵션으로 랜덤 포트에 공개합니다.
마지막으로 --name 名前 용기에 이름을 붙이는 것을 선택하십시오.
docker run -d -P --name static-site prakhar1989/static-site
이렇게 하면 포트를 보러 갈 수 있을 거예요.
docker port static-site
이렇게 하면 아래의 반응이 되돌아와 브라우저에서 보면 성공할 것이다.
이때는 http://localhost:32769/입니다.
80/tcp -> 0.0.0.0:32769
443/tcp -> 0.0.0.0:32768
↓ 브라우저에 표시된 상태

물론 특정 포트를 지정할 수도 있습니다. 소문자 -p 指定するポート네.
docker run -p 8888:80 prakhar1989/static-site
분리 모드에서 열린 컨테이너가 중지된 경우docker stop가 중지됩니다.
docker stop static-site
지금까지 사람들이 오가며 준비한 이미지로 시작된 작업은 순조롭습니다!
다음에는 직접 이미지를 만들어 보고 싶어요.

Docker images


docker의 인상은 두 가지가 있다.
기본 모델은 용기의 기초다.기본적으로 ubuntu,busybox 등 OS 같은 것들.
Childimage...base image에서build 이후 다양한 기능이 추가되는 것
다음과 같은 분류법도 있다.
오피셜 이미지 ··docker에서 제공한 것 같아요.기본적으로 하나의 단어다.pythonubuntuhello-world
user image///일반인이 만든 물건입니다.기본적으로 user/image-name 이름인 것 같아요.
이미지 종류를 만든 곳에서 자신의 이미지 제작에 도전한다.
간단한 Flashs 어플리케이션을 만듭니다.고양이를 랜덤으로 표시하는 앱인 것 같아요.🐈
(Python의 프레임워크. 나는 Python을 해 본 적이 없지만, 이 문서에 따라 할 것이다.)
다음 명령을 입력합니다.(주의: 컨테이너에서 수행하는 거 아니에요)
git clone https://github.com/prakhar1989/docker-curriculum.git
cd docker-curriculum/flask-app
언어는 ptyhon, base image 사용python:3-onbuild이기 때문이다.
onbuild에 관해서는 dockerfile로 다양한 편리한 버전을 지정할 수 있다고 쓰여 있습니다.
onbuild version of the image includes helpers that automate the boring parts of getting an app running. Rather than doing these tasks manually (or scripting these tasks), these images do that work for you. We now have all the ingredients to create our own image - a functioning web app and a base image. How are we going to do that? The answer is - using a Dockerfile.

Docker file이란?


이미지를 만들 때 사용하는 명령 같은 편리한 교재.
Linux command와 Write는 거의 같습니다.
방금 복제된 flash-app 디렉터리에서 Dockerfile의 이름으로 파일을 만듭니다.
(이 디렉토리에는 Docker file에 대한 설명이 있지만 처음부터 연습한 내용도 함께 삭제됩니다.)
파일 제작(flash-app)
touch Dockerfile
그럼 제가 Docker file에
편집 등에서 다음 줄을 추가하고 지정Base image합니다.
Dockerfile
FROM python:3-onbuild
FROM 지정Base image 가능하죠.
다음에 사용할 포트 번호를 지정합니다.이번에는 5000원.
Dockerfile
EXPOSE 5000
이어서 쓰시오CMD.CMDdocker run를 만들 때의 용기를 만들 때 집행한다.
Dockerfile
CMD ["python", "./app.py"]
상기 상황에 따라 $ python app.py 운행한다.
Docker file의 요약은 다음과 같습니다.
Dockerfile
FROM python:3-onbuild
EXPOSE 5000
CMD ["python", "./app.py"]
이렇게 Docker file이 완성되었습니다!
그리고 만들면 이미지 만들 수 있어요.
flash-app에서 다음 명령을 실행합니다.
Dockerfile
docker build -t (自分のdocker hubID)/catnip .
-t タグ名에 태그 이름을 지정할 수 있습니다.
이렇게 해서 기억이 났어요!
다음에 imgage를 실행합니다.
docker run -p 8888:5000 (自分のdocker hubID)/catnip
보러 가면 랜덤으로 귀여운 고양이 gif가 나와요!

끝맺다


컨테이너 한 세트의 사용 방법과 이미지 제작 방법을 배웠습니다!
하지만 환경에 어떻게 적응해서 맞춤형으로 만드는지 모르기 때문에 다음에도 교과서를 보면서 docker를 배워야 합니다!

좋은 웹페이지 즐겨찾기