apa itu docker api

青灯夜游
青灯夜游asal
2021-12-30 12:07:553613semak imbas

API Docker merujuk kepada antara muka pengaturcaraan aplikasi docker, yang merupakan perjanjian untuk sambungan komponen sistem perisian yang berbeza terutamanya mempunyai tiga API luaran: 1. API Docker Registry; ; 3. API Jauh Docker.

apa itu docker api

Persekitaran pengendalian tutorial ini: sistem linux5.9.8, versi docker-1.13.1, komputer Dell G3.

1. Apakah itu API

1.

Perkataan API dijelaskan dalam Wikipedia seperti berikut: Antara muka pengaturcaraan aplikasi (Bahasa Inggeris: antara muka pengaturcaraan aplikasi, disingkatkan sebagai API), juga dikenali sebagai antara muka pengaturcaraan aplikasi, ialah sistem perisian yang berbeza Konvensyen untuk penyambungan komponen. Saya rasa anda masih keliru selepas membaca penjelasan ini, tetapi tidak mengapa di bawah ini kami akan memperkenalkan apa itu API dalam bahasa orang awam.

Setiap daripada kita mempunyai telefon bimbit Apabila telefon bimbit kehabisan kuasa, kita pasti akan mencari pengecas tetap dan kabel pengecas untuk mengecasnya. Gunakan Apple untuk Apple, gunakan Android untuk Android. Tetapi anda pasti tidak akan menggunakan kabel Android untuk mengecas telefon Apple Sebabnya sangat mudah, kerana telefon Apple anda mempunyai antara muka Lightning, dan yang Android mempunyai antara muka mikro. Jika anda ingin mengecas atau memindahkan data ke telefon bimbit anda, anda mesti membeli kabel pengecasan dan kabel data yang sesuai Ini adalah cara yang paling mudah dan paling mudah untuk memahami antara muka.

Begitu juga, perkara yang sama berlaku untuk antara muka program. Setiap program mempunyai antara muka standard luaran tetap Antara muka ini ditakrifkan oleh pembangun yang membangunkan program tersebut. Jika anda ingin menyambung kepada mereka, anda harus mengikut piawaian antara muka mereka.

2. Apakah itu REST

Apabila belajar API sekarang, anda sering melihat perkataan yang dipanggil REST, dan nama penuh bahasa Inggeris ialah Representational State Pemindahan. Jadi apa itu REST? Istilah REST dicadangkan oleh Dr. Roy Fielding, pengerusi Yayasan Apache, dan makna bahasa Cinanya ialah "transformasi keadaan lapisan persembahan". Bahasa Cina tidak mudah difahami, tetapi jika kita mempelajarinya dari aspek berikut, anda mungkin boleh memahami apa itu rehat.

2.1. Apakah lapisan pembentangan?

Lapisan pembentangan di sini merujuk kepada lapisan pembentangan sumber Apa yang dipanggil "sumber" ialah sekeping maklumat khusus pada rangkaian. Teks, filem dan perkhidmatan boleh dikira sebagai sumber. Jadi apakah sumber ini digunakan untuk mengenal pasti dan mewakili? Kemudian anda perlu menggunakan URI Sebagai contoh, apabila kita memuat turun filem, mesti ada alamat URI yang sepadan Apabila kita membaca novel dalam talian, terdapat juga alamat URI yang sepadan. Dan alamat ini unik dan unik. Sumber dikenal pasti oleh URI, yang boleh kita fahami kerana sumber ini telah "dinyatakan" pada rangkaian. Jadi apabila ia datang kepada ini, maksud lapisan pembentangan sebenarnya adalah bentuk di mana "sumber" dibentangkan secara konkrit.

2.2. Apakah itu peralihan keadaan?

Dalam pengertian biasa, jika kita ingin menukar keadaan objek, kita pasti memerlukan beberapa operasi dan cara. Perkara yang sama berlaku untuk sumber di Internet Apabila anda memuat turun filem, anda mesti memuat turunnya dahulu, dan kemudian anda boleh membukanya dan menikmatinya. Muat turun dan pemerolehan memerlukan protokol HTTP Dalam protokol HTTP, terdapat empat kaedah operasi asas: GET, POST, PUT dan DELETE (dapatkan, buat, kemas kini, padam). Melalui empat kaedah asas ini, beberapa operasi transformasi keadaan boleh dilakukan pada sumber pada rangkaian.

Jadi, REST ialah transformasi keadaan lapisan pembentangan Anda boleh memahami dua perkara di atas secara berasingan dan kemudian menggabungkannya bersama. Ia boleh difahami secara ringkas dan kasar sebagai: kaedah sumber URI.

DAPATKAN /movie/war/Pearl Harbor

PADAM /movie/war/Pearl Harbor

...

2 >

API Docker juga mengikut gaya rehat, jadi selepas kami memahami dua perkara di atas, kami mula mempelajari pengetahuan berkaitan API docker sendiri.

Pertama sekali, kami menganggap docker sebagai sumber Kami boleh mengendalikan docker melalui api, dan kaedah operasinya juga sama seperti http.

Kedua, kita perlu memahami apa yang ada pada API docker yang boleh digunakan secara luaran Di sini, docker secara rasminya mempunyai tiga API luaran utama

    Docker Registry API
  • Docker. API Hub
  • API Jauh Docker

1 API Pendaftaran Docker

Ini ialah api gudang imej docker API, anda boleh mengautomasikan dan mengurus gudang cermin anda secara bebas.

2. Docker Hub API

Docker Hub API ialah API untuk operasi pengurusan pengguna menggunakan ruang nama awam checksum untuk menyimpan maklumat dan pengesahan akaun akaun tersebut. API juga membenarkan operasi pada repositori pengguna dan repositori perpustakaan yang berkaitan.

3. Docker Remote API

API ini digunakan untuk mengawal hos Docker server API, yang bersamaan dengan klien baris arahan docker. Dengan itu, anda boleh mengendalikan bekas docker dari jauh, dan yang lebih penting, anda boleh mengendalikan dan mengekalkan proses docker secara automatik melalui program.

3. Persediaan sebelum menggunakan API

Seperti yang kami katakan sebelum ini, kaedah http digunakan untuk mengendalikan api rehat. Jadi bagaimana untuk menggunakan kaedah ini secara khusus? Di sini kami menyediakan beberapa cara biasa untuk mengendalikan dan memanggil API docker, dan kemudian mengalaminya. Sebelum mengalaminya, kita perlu mendayakan api rehat docker, jika tidak, anda tidak akan dapat menggunakannya jika ia tidak didayakan. Kaedah pembukaan khusus:

$ vim /usr/lib/systemd/system/docker.service

Tambah -H tcp://0.0.0.0:8088 -H unix:///var/run/docker.sock terus selepas ExecStart=/usr/bin/dockerd (perhatikan bahawa port 8088 boleh ditakrifkan sendiri) , cuma jangan bercanggah dengan yang semasa)

$ systemctl daemon-reload
$ systemctl restart docker

Selepas permulaan semula selesai, kami melaksanakan perintah curl 127.0.0.1:8088/info | python -mjson.tool untuk melihat status docker (dalam format json, python -mjson.tool meminjam alat ini untuk memformat json dan menjadikannya lebih mudah dibaca)

Selepas mendayakan API docker, kami masih mempunyai soalan, iaitu, di mana kami boleh tanya API docker sedia ada? Memandangkan docker menyediakan tiga perpustakaan API utama: Docker Registry API, Docker Hub API dan Docker Remote API. Jadi di manakah saya boleh melihat API khusus dan terperinci, seperti alamat API yang ada di bawah API Pendaftaran Docker? Adakah terdapat API untuk menanyakan imej? Adakah yang telah dipadamkan? Malah, semua ini tersedia. Kami boleh pergi terus ke manual API tapak web rasmi untuk menyemaknya. > (Versi mana yang anda mahu lihat? Hanya gantikan v1.38 terakhir dengan nombor versi sasaran) Perlu diingatkan di sini bahawa pegawai tidak lagi mengesyorkan menggunakan versi sebelum API v1.12 disyorkan untuk menggunakan versi v1.24 atau lebih tinggi.

Untuk melihat versi API docker tempatan, anda boleh menggunakan arahan versi docker:

4. Cara mengendalikan API docker

1. Kaedah curl mudah

Saya rasa semua orang sudah biasa dengan arahan CURL, yang dipasang secara lalai di bawah Linux. Banyak kaedah ujian http boleh terus menggunakan CURL.

Sebagai contoh, jika kami menyemak maklumat terperinci imej docker, kami boleh terus menggunakan curl untuk mendapatkannya:

 $ curl -X GET http://127.0.0.1:8088/images/json

Dengan cara ini paparan akan menjadi lebih mengelirukan. Kita boleh menambah python -mjson.tool selepas arahan untuk memformat

$  curl -X GET http://127.0.0.1:8088/images/json | python -mjson.tool

Format hasil ini akan menjadi lebih standard dan lebih mudah dibaca.

Lihat semua bekas:

Buat bekas:
$ curl -X GET http://127.0.0.1:8088/containers/json | python -mjson.tool

Buat bekas pangkalan data mariadb di sini, tetapkan kata laluan kepada 123456 dan port pendengaran kepada 3306

Mula/berhenti/mulakan semula bekas kontena:
$ curl -X POST -H "Content-Type: application/json" -d '{
    "Image": "mariadb",
    "Env": ["MYSQL_ROOT_PASSWORD=123456"],
    "ExposedPorts": {
        "3306/tcp": {}
    },
    "HostConfig": {
        "PortBindings": {
            "3306/tcp": [{"HostIp": "","HostPort": "3306"}]
        }
    },
    "NetworkSettings": {
        "Ports": {
            "5000/tcp": [{"HostIp": "0.0.0.0","HostPort": "3306"}]
        }
    }
}' http://127.0.0.1:8088/containers/create

Terdapat banyak kaedah API, anda boleh log masuk ke pautan yang disebutkan di atas untuk melihat
$ curl -X POST http://127.0.0.1:8088/containers/{id}/start   (注意这里是POST方法)
$ curl -X POST http://127.0.0.1:8088/containers/{id}/stop   (注意这里是POST方法)
$ curl -X POST http://127.0.0.1:8088/containers/{id}/restart   (注意这里是POST方法)
...

https://docs.docker.com/engine/api/v1.38

2 kaedah skrip program python

python sangat berkuasa , semua orang bersetuju dengan ini. Banyak senario automasi kini menggunakan python untuk memuatkan perpustakaan sepadan pihak ketiga, dan kemudian menulis logik perniagaan untuk mengautomasikan operasi dan penyelenggaraan devops. Docker juga menyediakan perpustakaan yang sangat berkuasa untuk Python, dipanggil docker. Kita boleh log masuk ke alamat sdk python rasmi untuk mengetahui cara python secara khusus mengendalikan docker.

Alamatnya ialah:

https://docker-py.readthedocs.io/en/stable/

2.1.1 $ pip install docker

2.2 Mula menggunakan

Ini adalah contoh penggunaan yang sangat mudah, kita boleh menganalisisnya:

Barisan pertama bermaksud memperkenalkan yang ketiga- tukang dok perpustakaan parti.
import docker
client = docker.DockerClient(base_url='unix://var/run/docker.sock', version="auto")
client.containers.run("ubuntu", "echo hello world")

Barisan kedua digunakan untuk mengkonfigurasi maklumat asas pelayan Docker, termasuk base_url (alamat pelayan Docker) dan versi (auto boleh menyemak versi docker secara automatik).

Barisan ketiga adalah bersamaan dengan menjalankan arahan docker run ubuntu echo hello world.

2.3. Penggunaan lanjutan

Ringkasan:

Banyak syarikat kini telah memasuki era operasi dan penyelenggaraan automatik, jadi menguasai kemahiran dan peraturan untuk menggunakan API adalah Sangat perlu. Di atas, kami telah memperkenalkan secara kasarnya pengenalan kepada docker api Sebenarnya, anda harus sangat mahir dalam hal itu. Terdapat banyak fleksibiliti dan kerumitan di sini, tetapi di sini anda memerlukan sedikit pengetahuan tentang pengaturcaraan skrip.
import docker
client = docker.DockerClient(base_url="tcp://ip:port")
client.images.list()       # 类似docker images命令,显示image的信息列表
client.containers.list()       #  类似docker ps命令
client.containers.list(all=True)       # 类似docker ps -a命令
container = client.containers.get(container_id)           # 获取daodocker容器,这里container_id 是你要输入的具体容器id
container.start()            # 类似docker start 传入具体的容器id ,开启容器

Pembelajaran yang disyorkan: "tutorial video buruh pelabuhan"

Atas ialah kandungan terperinci apa itu docker api. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn