docker-py를 사용하여python에서 용기를 조작하는 방법
A Python library for the Docker Engine API.
배경.
docker페이지를 보고 docker-py이런 창고를 발견했어요.
가까스로 건드려 사용법을 총결해 봤다.
docker-py 소개
Docker Engine API는 Python 라이브러리를 사용합니다.
ptyhon으로 쓴 프로그램에서 docker 명령을 사용할 수 있습니다.
오픈소스입니다. GiitHub에서 공개합니다.(Apache License 2.0)
『 docker/docker-py 』
언어는python으로 썼습니다.스타수 4000 정도.
컨디션
설치 단계
pip를 사용하면 간단하게 설치할 수 있습니다
$ pip install docker
요컨대 실행하다
당분간 실행하다.
다음 원본 파일은 docker 수호 프로세스와 통신하기만 하면 아무것도 보이지 않습니다.
여기에 오류가 발생했을 때, 설치 실패나 import의 경로가 순조롭지 못할 수도 있습니다.
과거에 설치된 경우는 대부분 한 번 삭제하고 다시 설치한 다음에 해결하는 것이다.
import docker
# デフォルトソケットを用いて通信
client = docker.from_env()
여기 있다. 프롬.env에 Docker 서버의 URL을 기록할 수도 있습니다.client = docker.DockerClient(base_url='unix://var/run/docker.sock')
또 이 단계에서는 도커에 대한 정보를 얻는 기능도 실현했다.모든 값은 사전 형식으로 되돌아옵니다.
# データ使用情報を表示
client.df()
# システムの情報を表示します。 => docker info
client.info())
# dockerのバージョンを表示 => docker version
client.version()
# サーバが応答してるかどうか確認
client.ping()
위와 같이 사용하면 docker의 시작과 응용 프로그램의 docker 버전 정보를 간단하게 낮출 수 있습니다.(docker는 예전에 넣고 움직이지 않아요! 이런 건 줄어드는 것 같아요. 지령을 내려야 한다고 해요.)import sys
import docker
client = docker.from_env()
# 応答確認
if client.ping() == False :
print ("Ping Error", file=sys.stderr)
cv = client.version()
print(cv["Components"][0]["Version"])
운행 컨테이너
위쪽은 도커의 운행 환경을 살펴보고 여기서부터 실제 컨테이너를 운행한다.
도커 런처럼 모양도 간단하게 움직일 수 있어요.
실행할 때 옵션을run ()의 세 번째 인자에 전달해서 처리할 수 있습니다.
cpu_count의 CPU 분배와 entrypoint에서 용기의 입구점,network의 네트워크 등을 지정할 수 있습니다.
import sys
import docker
client = docker.from_env()
# run(image, command=None, **kwargs)
print (client.containers.run("alpine", "cat /etc/alpine-release"))
물론 용기 제작을 시작하지 않거나 용기 정보를 얻을 수도 있다.# コンテナを作成
client.containers.create()
# コンテナリストを取得
client.containers.list()
# コンテナオブジェクトを取得
client.containers.get(id or name)
# 停止したコンテナを削除
client.containers.prune()
# pullもできる
image = client.images.pull("alpine")
이 일대의 모든 서버의 오류는 'docker.errors.APIerror' 로 답장됩니다.네트워킹
네트워크도pytohon을 통해 조작할 수 있다.
docker network에 대한 작업이 있는 것 같습니다.
Docker 컨테이너 네트워크 이해
client.networks.create("network1", driver="bridge")
# サブネット、ゲートウェイを使うことも
ipam_pool = docker.types.IPAMPool(
subnet='192.168.52.0/24',
gateway='192.168.52.254'
)
ipam_config = docker.types.IPAMConfig(
pool_configs=[ipam_pool]
)
client.networks.create(
"network1",
driver="bridge",
ipam=ipam_config
)
소리
볼륨 생성/삭제 가능
volume = client.volumes.create(name='foobar', driver='local',
driver_opts={'foo': 'bar', 'baz': 'false'},
labels={"key": "value"})
# 未使用ボリュームの削除
volume.prune(filters)
총결산
만져보니까'python'과'docker'를 동시에 배울 수 있는 좋은 장르인 것 같아요!이런 느낌이야.
여기에 소개된 기능 이외에도 많은 기능이 있다.docker 명령으로 할 수 있는 일은 할 수 있을 것 같습니다.
공식 문서를 읽으면서 진행하면 다양한 콘텐츠를 활용할 수 있을 것 같다.
(docker-py용 용기가 재미있어요)
참조 링크
Reference
이 문제에 관하여(docker-py를 사용하여python에서 용기를 조작하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ryuichi1208/items/d673fe50121599f6b063텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)