Rumah >Operasi dan penyelenggaraan >Docker >apa itu docker api
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.
Persekitaran pengendalian tutorial ini: sistem linux5.9.8, versi docker-1.13.1, komputer Dell G3.
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
...
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 mudahSaya 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/createTerdapat 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!