(빠른 Docker 사용을 위해) Docker 시작
13486 단어 Docker
개시하다
이 기사는 Docker를 신속하게 사용할 수 있도록 쓴 것이다.
구체적으로 말하면
따라서 더 깊이 이해하고 싶은 사람은 아래의 기사를 참고하면 된다.
Docker 소개
삼행
Docker 이미지, 컨테이너, 레지스트리 정보
Docker 이미지, 컨테이너, 레지스트리 요약
이름:
설명
Docker 이미지
앱 설치와 각종 설정 등 앱 동작에 필요한 정보가 모두 취합된다.
Docker 컨테이너
Docker 이미지로 통합된 응용은 실제 실행 상태(과정으로 이동하는 상태)가 되는 것이다.
Docker 레지스트리
Docker 이미지의 버전을 관리하는 시스템입니다.클라우드 서비스로Docker Hub와 개인 등록 등이 있다.
Docker 이미지, 컨테이너, 레지스트리의 관계는 다음과 같습니다.
Docker의 이점 사용
나는 여러 가지 좋은 점이 있을 것이라고 생각하지만, 개인적으로는 다음과 같은 세 가지를 열거한다.
중간부품은 가볍게 시험적으로 사용할 수 있다
예를 들어 최신 Elasticsearch를 시도하려면 두 개의 Docker 명령을 사용하여 구축할 수 있습니다.
코드 관리 환경 구축 가능
Docker에서 Dockerfile
또는 docker-compose.yml
등의 텍스트 파일에 환경 구축 단계를 기록합니다.
이러한 파일을 참조하여 Docker 명령을 실행하면 프로그램에 따라 환경을 구성할 수 있습니다.
환경 구축 절차를 인코딩(Infrastructure as Code)함으로써 환경 구축이 다소 수월해질 수 있다는 것이다.
환경 차이가 발생하기 매우 어렵다.
한 번에 제작된 환경은 Dockerイメージ
로 집계Dockerレジストリ
에 등록되었다.
Docker를 가져온 서버는 Dockerレジストリ
에서 Dockerイメージ
를 가져와 Dockerコンテナ
화하여 같은 환경을 구축하기 쉽다.
또한 구축된 환경을 변경하고 싶다면(예를 들어 중간부품의 버전 업그레이드 등)
환경을 직접 처리하는 것이 아니라 다시 만드는 것이다Dockerイメージ
.
이후 이를 Dockerイメージ
화Dockerコンテナ
해 동작 확인을 하고 문제가 없으면 각 환경에 배포한다.
환경을 직접 수정하지 않고(Immutable Infrastructure) 새로 만들기Dockerイメージ
절차에 따라 환경의 수정 누락을 방지하는 효과가 있다.
공연하다
그러면 실제 환경 구축을 진행한다.
0) 사전 준비
Docker 설치
공식 홈페이지를 참고하여 설치Docker 및Docker Compose.
이 밖에 본 보도의 환경은 다음과 같다.
호스트 OS: Ubuntu 18.04.1
그러면 실제 환경 구축을 진행한다.
0) 사전 준비
Docker 설치
공식 홈페이지를 참고하여 설치Docker 및Docker Compose.
이 밖에 본 보도의 환경은 다음과 같다.
호스트 OS: Ubuntu 18.04.1
Docker Hub 계정 만들기
Dokcerレジストリ
Docker Hub을 사용합니다.이 페이지에 계정을 만드십시오.
1) 가장 간단한 방법
우선 가장 간단한 방법으로 Elasticsearch를 구축한다.
docker image pull
및 docker container run
두 명령만 사용하여 가져올 수 있습니다.# Elastic社公式Dockerイメージを取得
$ docker image pull docker.elastic.co/elasticsearch/elasticsearch:7.0.1
# イメージを確認
$ docker image ls
# コンテナ化
$ docker container run -d --name sample-es01 -p 19200:9200 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.0.1
# コンテナ確認
$ docker container ls
# Elasticsearch確認
$ curl localhost:19200
docker image pull 이미지 이름
소스 이미지 이름
2) Docker file 사용 방법
취득한
Dockerイメージ
에 대해 추가 설치나 초기 설정 등 일부 작업을 원할 때Dockerfile
에 이 작업 내용을 기재함으로써 작업 자체를 자동화할 수 있다.이번에는 CentOS 7에서 Elasticsearch를 가져오려고 합니다.
우선 아래
Dockerfile
를 제작한다.Dockerfile
#ベースはCentOS7
FROM centos:centos7
#必要なソフトウェアをインストール
RUN yum install -y java wget
#ユーザ「elasticsearch」を追加
RUN groupadd -g 1000 elasticsearch && \
adduser -u 1000 -g 1000 -d /usr/share/elasticsearch elasticsearch
USER elasticsearch
WORKDIR /usr/share/elasticsearch
#Elasticsearch7のダウンロード
RUN wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.0.1-linux-x86_64.tar.gz \
&& tar zxvf elasticsearch-7.0.1-linux-x86_64.tar.gz
#Elasticsearchの初期設定
RUN echo -e $"\n\
network.host: 0.0.0.0\n\
discovery.type: single-node\n\
" >> /usr/share/elasticsearch/elasticsearch-7.0.1/config/elasticsearch.yml
#コンテナ起動時にElasticsearchをフォアグラウンドで起動
CMD ["/usr/share/elasticsearch/elasticsearch-7.0.1/bin/elasticsearch"]
EXPOSE 9200
Dockerfile
를 만든 후 docker iamge build
명령을 사용하여 Dockerイメージ
를 만듭니다.# docker iamge build -t イメージ名 Dockerfileの格納ディレクトリ
$ docker image build -t elasticsearch-7.0.1 .
Dockerイメージ
의 구축 후 이전과 같이 docker container run
명령Dockerコンテナ
화를 사용한다.$ docker container run -d --name sample-es02 -p 29200:9200 sample-es02
이렇게 하면 Elasticsearch를 가져올 수 있습니다.사용한 엘라스틱서치의 버전을 높이고 싶다면 엘라스틱서치의 설정을 변경하고 싶다면 수정
Dockerfile
하고 컨테이너를 다시 만들면 된다.3) Docker 이미지 공유
제작
Dockerイメージ
은 로그인Dockerレジストリ
을 통해 다른 환경과 공유할 수 있습니다.Docker 이미지 표시
Docker Hub
자신의 창고에 등록하기 위해 먼저 등록Dockerイメージ
Docker Hub 계정/이미지 이름[:태그 이름]형식은 태그로 표시됩니다.
# 実演2)で作成したイメージ「sample-es02」に対してタグ付け
$ docker image tag sample-es02 shinyashikis/my-elasticsearch7:0.0.1
# イメージ確認
$ docker image ls
로그인 Docker 이미지
표시 후 로그인
Docker Hub
, docker image push
명령을 통해 등록Dockerイメージ
.# Docker Hubにログイン
$ docker login -u shinyashikis -p xxxxxxxxxxxxxx
# タグ付けしたイメージをDokcer Hubに登録
$ docker image push shinyashikis/my-elasticsearch7:0.0.1
이렇게 하면 지정한 docker image pull
명령이나 Dockerfile
FROM 문구를 통해 등록된 이미지를 얻을 수 있다.$ docker image pull shinyashikis/my-elasticsearch7:0.0.1
DockerfileFROM shinyashikis/my-elasticsearch7:0.0.1
4) Docker Compose 사용 방법
지금까지 한 개의 컨테이너 제작을 예로 들면 여러 개의 컨테이너의 상황은 어땠을까.
여러 용기로 구성된 경우 용기 간 통신과 용기의 작동 순서 등을 고려해야 한다.
이런 상황에서 다중 컨테이너 관리 도구
Docker Compose
를 사용하면 관리하기 쉽다.이번에 브라우저로spring-boot 컨테이너에 접근하면 Elasticsearch 정보만 표시하는 간단한 프로그램을 구축할 수 있다.
그렇다면 우선 아래 목록을 배치하여 필요한 자재를 구성한다.
$ tree
.
├── docker-compose.yml #コンテナの構成を管理するファイル
└── my-spring-boot
├── Dockerfile #spring-boot用Dockerfile
└── sample-es-0.0.1-SNAPSHOT.jar #spring-bootアプリ
my-spring-boot/Dockerfile#ベースはJDK8イメージ
FROM openjdk:8-jdk-alpine
#アプリをjava-app.jarとしてデプロイ
COPY ./sample-es-0.0.1-SNAPSHOT.jar java-app.jar
#アプリ実行
CMD ["java","-jar","/java-app.jar"]
docker-compose.ymlversion: "3"
services:
my-spring-boot:
build: my-spring-boot/ #spring-boot用Dockerfileの格納先を指定
image: sample-sb04 #イメージ名
container_name: sample-sb04 #コンテナ名
ports:
- 48080:8080
links:
- my-elasticsearch #Elasticserchコンテナへ通信する際のエイリアス
my-elasticsearch:
image: shinyashikis/my-elasticsearch7:0.0.1 #実演3)で作成したイメージを指定
container_name: sample-es04 #コンテナ名
ports:
- 49200:9200
docker-compose.필요한 자재 배치 후 docker-compose up
구축과 용기를 시작하도록 명령합니다.$ ls
docker-compose.yml my-spring-boot
#ビルド実行
$ docker-compose up -d
#コンテナ確認
$ docker-compose ps
#ブラウザで確認
http://localhost:48080/myEsInfo
다음 Elasticserch 정보가 브라우저에 표시되면 OKElasticsearchの情報
nodeName: 1497813f0e6f
clusterName: Cluster [elasticsearch]
끝말
달리기지만 다른 서버에서도 공유할 수 있는 간단한 환경을 구축했다.
실제로 데이터의 지속성을 고려해 용기가 작동할 때 복잡한 처리를 위해 조개껍질을 실행하는 경우도 이번 사례처럼 쉽지 않은 경우도 있다.
이런 경우 처음에 소개한 사이트, 공식 사이트, 서적 등을 참고하세요.
또 라이브 공연에 사용되는 재료는 다음과 같이 보관한다.
참고서
Reference
이 문제에 관하여((빠른 Docker 사용을 위해) Docker 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shinyashikis@github/items/c6bf41d1915184254317텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)