1 설치
1.1 도커
설치하려면 아래 단계를 따르십시오.
# 更新现有的包
sudo apt update
# 添加Docker PGP公钥
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
# 配置Docker APT库
echo 'deb [arch=amd64] https://download.docker.com/linux/debian buster stable' | sudo tee /etc/apt/sources.list.d/docker.list
# 更新一下APT列表
sudo apt-get update
# 安装Docker,在安装前先删除原来系统中可能自带的Docker:
sudo apt-get remove docker docker-engine docker.io
# 安装Docker:
sudo apt-get install docker-ce
# 看看安装成功了没:
sudo docker run hello-world
# 设置启动
sudo systemctl start docker
sudo systemctl enable docker
1.2 도커 작성
실행 파일을 로컬로 가져옵니다 (sudo가 필요할 수 있음).
curl -L https://github.com/docker/compose/releases/download/1.25.0-rc1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
실행 파일에 대한 권한 설정
chmod +x /usr/local/bin/docker-compose
설치 성공 여부 확인
docker-compose version
최종 효과 :
2 docker-compose 소개
먼저 docker-compose가 해결하도록 설계된 시나리오를 알아야합니다.
도커를 실행하려면 길고 복잡한 명령이 필요합니다. 예 :
docker run \
--detach \
--name registry \
--hostname registry \
--volume $(pwd)/app/registry:/var/lib/registry \
--publish 5000:5000 \
--restart unless-stopped \
registry:latest
조작을 용이하게하기 위해이 도커 실행을 쉘 파일로 작성할 수 있습니다.
웹 미러링은 실제로 이것보다 더 복잡합니다. 간단한 docker run 명령으로는 웹 서비스를 시작하기에 충분하지 않습니다. 일반적으로 여러 개의 미러가 필요하며 미러 사이에는 우선 순위 관계가 있습니다. 이 관계의 오케스트레이션을 도커의 오케스트레이션이라고합니다.
Docker는 docker의 오케스트레이션을 완료하는 데 도움이되는 명령 줄 도구 docker-compose를 제공합니다. docker-compose를 사용하려면 docker-compose.yml 파일 (구성 파일)을 작성해야합니다.
예 :
version: "3"
services:
web:
image: beginor/geoserver:2.11.1
container_name: geoserver-web
hostname: geoserver-web
ports:
- 8080:8080
volumes:
- ./web/data_dir:/geoserver/data_dir
- ./web/logs:/geoserver/logs
restart: unless-stopped
links:
- database:database
database:
image: beginor/postgis:9.3
container_name: postgis
hostname: postgis
ports:
- 5432:5432
volumes:
- ./database/data:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: 1q2w3e4R
restart: unless-stopped
위의 yml 파일은 두 개의 서비스 웹과 데이터베이스를 정의하며, 서비스는 실행중인 컨테이너의 인스턴스에 해당합니다. 위 파일은 두 개의 인스턴스가 시작될 것임을 나타냅니다.
배포 할 때 일반적으로 응용 프로그램을 나타내는 디렉터리에 docker-compose.yml 파일을 넣어야하며 docker는이 응용 프로그램에 대한 독립 네트워크를 만듭니다.
docker-compose up -d
프로그램을 시작하는 데 사용할 수 있습니다 .
~/Desktop/source » docker-compose up -d 255 ↵ littlechieh6@MacBook-Pro
Creating network "source_app1" with the default driver
Building server
Step 1/6 : FROM ubuntu:16.04
16.04: Pulling from library/ubuntu
be8ec4e48d7f: Pull complete
33b8b485aff0: Pull complete
d887158cc58c: Pull complete
05895bb28c18: Pull complete
Digest: sha256:3355b6e4ba1b12071ba5fe9742042a2f10b257c908fbdfac81912a16eb463879
Status: Downloaded newer image for ubuntu:16.04
……
컨테이너 위에서 멈추려면 docker-compose down
can을 입력 하면됩니다.
위의 명령에서 알 수 있듯이 docker-compose는 구성 파일 docker-compose.yml에 따라 네트워크를 자동으로 생성하고 해당 컨테이너 인스턴스를 시작할 수있을뿐만 아니라 구성에 따라 컨테이너 인스턴스를 삭제할 수도 있습니다.
3 docker-compose 사용
일반적으로 사용되는 명령 :
# 启动 docker-compose 的实例
docker-compose up -d
# 关闭 docker-compose 的实例
docker-compose down
# 列出本机正在运行的容器
docker container ls
docker ps
# 用来查看 docker 容器的输出,即容器里面 Shell 的标准输出。
$ docker container logs [containerID]
# 进入容器
$ docker container exec -it [containerID] /bin/bash
부록
참조 튜토리얼 :
- 使用 docker-compose 替代 docker run : https : //beginor.github.io/2017/06/08/use-compose-instead-of-run.html
- Kali Linux 2020.1 Release 安装 Docker-CE https : //zhuanlan.zhihu.com/p/110675842