중앙 OS 7에서 Docker의 기본 작업 중 하나 확인
8494 단어 Docker
중앙 OS 7에서 Docker의 기본 작업 중 하나 확인
쉬었기 때문에 Docker의 기본 동작을 다시 확인합니다.Vagrant VirtualBox에서
CentOS 7.0의 가상 환경을 시작하고 Docker를 이동하면서 확인합니다.
전제 조건
Vagrant 기반 환경 준비
비디오 설정
적당한 디렉터리를 만들고 bento에서 센터 OS 7.0의 box를 가져옵니다
설치할 Vagrantfile을 배치합니다.
$ mkdir dockerenv && cd dockerenv
$ vagrant init
init
설정된 템플릿은 편집기에서 다음과 같이 편집됩니다.Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.require_version ">= 1.6.3", "< 1.9.9"
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.boot_timeout = 60
config.vm.box = "centos-7.0"
config.vm.box_url = "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-7.0_chef-provisionerless.box"
config.vm.hostname = "docker-centos7-01"
config.vm.network "forwarded_port", guest: 80, host: 8888
end
Docker 설치
가상 환경을 만들고 docker를 설치합니다.
$ vagrant up
$ vagrant ssh
$ sudo yum install docker
Docker 활용
앞으로의 작업은vagrant가 시작하는 가상 라운드에서 진행됩니다.
Docker 시작
docker를 데몬으로 시작합니다.
$ sudo systemctl enable docker.service
$ sudo systemctl start docker.service
확인$ sudo systemctl status docker.service
명령의 결과가 Active: active (running)
인 경우 가 시작되었습니다.프로파일 확인
Docker는 Go 언어로 실행되며
docker
명령을 통해 시작하는 deamon에게 지시를 보냅니다서버 클라이언트 방식으로 작업합니다.Go 및 각 구성 요소의 버전은 다음과 같습니다.
docker version
에서 확인할 수 있습니다.$ sudo docker version
Client version: 1.3.2
Client API version: 1.15
Go version (client): go1.3.3
Git commit (client): 39fa2fa/1.3.2
OS/Arch (client): linux/amd64
Server version: 1.3.2
Server API version: 1.15
Go version (server): go1.3.3
Git commit (server): 39fa2fa/1.3.2
또한 docker info
명령을 사용하면 용기 수량, 데이터의 저장 위치와 사이즈 등 현재 사용 상황을 확인할 수 있다.$ sudo docker info
Containers: 4
Images: 8
Storage Driver: devicemapper
Pool Name: docker-253:1-134297046-pool
Pool Blocksize: 65.54 kB
Data file: /var/lib/docker/devicemapper/devicemapper/data
Metadata file: /var/lib/docker/devicemapper/devicemapper/metadata
Data Space Used: 860 MB
Data Space Total: 107.4 GB
Metadata Space Used: 1.368 MB
Metadata Space Total: 2.147 GB
Library Version: 1.02.84-RHEL7 (2014-03-26)
Execution Driver: native-0.2
Kernel Version: 3.10.0-123.el7.x86_64
Operating System: CentOS Linux 7 (Core)
그림 가져오기
Docker는 컨테이너 시작에 필요한 데이터를 이미지 단위로 저장합니다.
Ubuntu 14.04 이미지는 중앙 OS 7.0에서 제공됩니다.
docker pull
명령은 기본적으로 공식 레지스트리에서 이미지를 가져옵니다.$ sudo docker pull ubuntu:14.04
확인다운로드가 완료된 후
docker images
명령으로 다운로드한 이미지를 확인하세요.$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu 14.04.1 ed5a78b7b42b 2 days ago 192.7 MB
ubuntu trusty ed5a78b7b42b 2 days ago 192.7 MB
ubuntu 14.04 ed5a78b7b42b 2 days ago 192.7 MB
IMAGE ID는 모두 동일하므로 동일한 이미지에 여러 TAG를 추가할 수 있습니다.컨테이너 시작
용기의 시동은
docker run <オプション> <イメージ> <コマンド>
에서 진행된다.우선 가장 간단한 echo만 운행하는 컨테이너를 가동합니다.
$ sudo docker run -i -t -h 'first_container' --rm ubuntu:14.04 hostname && echo 'Hello Docker!'
실행 결과hostname
명령의 결과로 선택한 호스트 이름이 반환되었습니다.first_container
Hello Docker!
주로 다음과 같다.자세한 내용은 확인하십시오man docker-run
.옵션
설명
-a, --attach
부팅된 컨테이너의 컨트롤러를 호스트의 컨트롤러로 출력합니다.
-d, --detach
백스테이지에서 컨테이너를 가동하다.
-h, --hostname
부팅된 용기에 설정된 호스트 이름을 지정합니다.
-i, --interactive
attach가 없어도 표준 출력을 열 수 있습니다.
-m, --memory
메모리 사용량을 제한하다.ex.)
-m 200m
면 최대 200MB.--name
관리 이름을 설정합니다.ex.) --name 'my_server'
-p, --publish
포트 전달 설정.ex.) 컨테이너의 포트 80을 -p808:80으로 지정하여 호스트의 8080에 연결합니다.
--rm
용기 실행이 끝날 때 용기를 삭제합니다.
-t, --tty
컨테이너의 표준을attach에서tty로 출력합니다.주로
-i
와 함께 사용합니다.-v, --volume
마운트를 설정합니다.호스트의 특정 디렉터리를 용기에서 읽으려고 할 때 주로 사용됩니다.
컨테이너 내의 환경 변수 또는 작업 디렉토리(기본값/)를 설정할 수도 있습니다.
docker run
옵션을 사용하여 설정할 수 있습니다.용기 내부에서 bash 실행하기
보통 이렇게 하지는 않지만, 여기는 bash를 예로 들어 컨테이너 안으로 들어간다
거기서 웹 서버를 만들어 보세요.
절차.
호스트에서 컨테이너에서 참조하는 파일 설정하기
$ mkdir /tmp/docker
$ echo 'Test Server running inside a container.' > /tmp/docker/test.txt
컨테이너 시작
-v
선택적으로 상위 호스트에 마운트를 지정하고-p
컨테이너의 포트 8080을 상위 포트의 80에 연결합니다.$ sudo docker run --rm -ti -v /tmp/docker:/opt -p 80:8080 ubuntu:14.04 /bin/bash
컨테이너 내에서 WebServer를 시작하고 브라우저를 통해 확인
시동이 잘 걸리면 컨테이너 안의 터미널이 루트에서 시작됩니다.
따라서 루비를 사용하여 간이 웹 서버를 시작합니다.
참조: 온라인 웹 서버를 수집해 보았습니다.
우선 루비를 설치합니다.
# sudo apt-get install ruby -y
그런 다음 쓰기 도구를 사용하여 웹 서버를 시작합니다.# ruby -run -e httpd . -p 8080
[2014-12-31 10:02:35] INFO WEBrick 1.3.1
[2014-12-31 10:02:35] INFO ruby 1.9.3 (2013-11-22) [x86_64-linux]
[2014-12-31 10:02:35] WARN TCPServer Error: Address already in use - bind(2)
[2014-12-31 10:02:35] INFO WEBrick::HTTPServer#start: pid=2651 port=8080
그럼 브라우저를 시작해서 확인해 보세요.아래 그림처럼 보이면 성공입니다.http://localhost:8888/opt/test.txt
* Vagrantfile이 VM의 80을 8888로 전달했기 때문에 포트 8888을 지정합니다.
총결산
docker
명령을 사용하여 서버에 명령을 보냅니다.docker run
-v <親ホストのディレクトリ>:<コンテナ内ディレクトリ>
Reference
이 문제에 관하여(중앙 OS 7에서 Docker의 기본 작업 중 하나 확인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/smile-0yen/items/c6957b951ca0fdb8acc7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)