Docker Engine API 설정 및 사용 방법
2024. 8. 22. 20:19ㆍDocker
Docker Engine에서 제공하는 HTTP API를 사용하여 Docker client가 Docker Engine과 통신하는 방법을 작성하겠습니다.
※ 이 글에서 설명하는 docker daemon 설정은 CentOS7 기반으로 작성되었습니다.
1. 원격으로 사용하려는 docker daemon에 host를 설정합니다.
# .docker/daemon.json 파일을 수정합니다. 없으면 새로 만들어줍니다.
$ cd .docker
$ vi daemon.json
# host로 UNIX 소켓, IP를 연결할 수 있게 daemon.json 파일을 수정합니다.
{
"hosts": ["unix:///var/run/docker.sock", "tcp://127.0.0.1:2375"]
}
2. /lib/systemd/system/docker.service 를 설정해 줍니다.
$ cd /lib/systemd/system
$ sudo vi docker.service
# 다음을 docker.service에 추가합니다.
# 0.0.0:2375는 원격 통신을 위한 호스트, unix socket은 로컬 통신을 위한 소켓입니다.
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H 0.0.0.0:2375
3. 변경이 완료되면, 적용을 위해 systemctl을 다시 로드합니다.
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker.service
4. docker를 재시작합니다.
$ service docker restart
5. 다음과 같이 출력되면 설정이 완료된 것입니다.
$ netstat -lntp | grep dockerd
tcp6 0 0 :::2375 :::* LISTEN 2015/dockerd
이제 도커 클라이언트에서 호출하여 통신이 잘 되는지 확인해 보겠습니다.
도커 이미지를 pull 하기 위해 다음과 같이 호출합니다.
POST http://{IP}:2375/images/create?fromImage=rabbitmq&tag=3-management
response
{
"status": "Pulling from library/rabbitmq",
"id": "3-management"
}
{
"status": "Pulling fs layer",
"progressDetail": {},
"id": "d7bfe07ed847"
}
{
"status": "Pulling fs layer",
"progressDetail": {},
"id": "a8249261ea33"
}
...
{
"status": "Extracting",
"progressDetail": {
"current": 7471104,
"total": 11645457
},
"progress": "[================================> ] 7.471MB/11.65MB",
"id": "0fbf2173e110"
}
{
"status": "Extracting",
"progressDetail": {
"current": 9961472,
"total": 11645457
},
"progress": "[==========================================> ] 9.961MB/11.65MB",
"id": "0fbf2173e110"
}
{
"status": "Extracting",
"progressDetail": {
"current": 11645457,
"total": 11645457
},
"progress": "[==================================================>] 11.65MB/11.65MB",
"id": "0fbf2173e110"
}
{
"status": "Pull complete",
"progressDetail": {},
"id": "0fbf2173e110"
}
{
"status": "Digest: sha256:aadcd2873a65f4976774d05b54bb048a4f9878eae473a89bffc740bfc0de1803"
}
{
"status": "Status: Downloaded newer image for rabbitmq:3-management"
}
반응형
'Docker' 카테고리의 다른 글
Linux에 Docker 설치(Amazon Linux / AWS EC2) (0) | 2024.08.24 |
---|---|
Docker mongoDB 설치 및 접속 (0) | 2024.08.23 |
Docker로 influxDB 설치(volume 설정) 및 실행 / influxDB 접속, 조회, 생성, 삭제 명령어 (0) | 2024.08.22 |
Docker로 mosquitto 실행 및 설정 (0) | 2023.02.11 |
Docker 이미지 최적화 (0) | 2021.08.13 |