Saya mencoba sekarang, tidak dapat menemukan sampel apa pun secara online. terima kasih telah memilih, saya suka orang yang bahagia.
Dimitri Kopriwa
Anda harus membaca Cara Bertanya dan memberikan contoh minimal yang dapat direproduksi . Bagaimana docker --listatau mirip seperti itu? Apa perintah untuk membuat penampung baru? dll
fedorqui 'JADI berhenti merugikan'
1
Saya pikir pertanyaan saya cukup jelas, mohon pilih Saya akan memberikan jawabannya secepatnya.
Dimitri Kopriwa
1
Tidak ada yang namanya "wadah" yang saya tahu di bash. Mungkin maksud Anda kontainer buruh pelabuhan ? Jika demikian, orang yang menonton tag "bash" mungkin akan bingung. bagaimanapun Anda mendapatkan id kontainer dari namanya, saya yakin itu adalah perintah yang sebenarnya dan tidak ada hubungannya dengan bahasa pemrograman bash.
djhaskin987
Jawaban:
196
Di Linux:
sudo docker ps -aqf "name=containername"
Atau di OS X, Windows:
docker ps -aqf "name=containername"
dimana containernamenama container anda.
Untuk menghindari kesalahan positif, seperti yang dicatat @llia Sidorenko, Anda dapat menggunakan jangkar regex seperti ini:
docker ps -aqf "name=^containername$"
penjelasan:
-quntuk diam. hanya mengeluarkan ID
-auntuk semua. berfungsi bahkan jika penampung Anda tidak berjalan
Harap berhati-hati dengan jawaban ini, karena name = containername sebenarnya adalah wildcard dan akan cocok dengan apa pun dengan name (. *) Containername (. *)
Ilia Sidorenko
5
@ekis menggunakan --no-truncbendera. jadidocker ps --no-trunc -aqf "name=containername"
code_monk
3
Mulai 2019-01-07, ini tidak berhasil untuk saya. Saya menggunakan docker v17.06.0. Perintah itu docker inspect --format="{{.Id}}" imageNameberhasil untuk saya.
PatS
1
@code_monk, Terima kasih atas konfirmasinya. Saya telah menambahkan komentar ke jawaban Rosberg Linhares dari mana saya mendapatkan idenya, dan menyarankan agar jawabannya diubah menjadi jawaban yang benar.
Ini juga memberi saya ID penampung. ID penampung lengkap, bukan hanya 12 karakter pertama yang terpotong.
cowlinator
Suka yang ini! Terima kasih. 👍
GollyJer
@vijay @RosbergLinhares jika Anda memberikan nama penampung (diberikan di NAMESkolom dengan docker ps), ini memberikan ID penampung. Jika nama gambar (diberikan di IMAGEkolom dengan docker ps) disediakan, itu akan mengeluarkan ID gambar sebagai gantinya.
Wolfson
12
Dapatkan ID kontainer dari menjalankan kontainer ::
$docker ps -qf "name=IMAGE_NAME"
-f: Filter output based on conditions provided
-q: Only display numeric container IDs
Dapatkan ID kontainer dari semua kontainer ::
$docker ps -aqf "name=IMAGE_NAME"
-a: all containers
Tolong tambahkan penjelasan untuk jawaban Anda. Jawaban yang hanya berupa kode (atau dalam kasus ini hanya perintah) tidak membantu pengguna baru yang mungkin tidak memahami fungsi sebenarnya dari perintah atau kode tersebut. Cari tahu tentang pemrograman kultus kargo untuk mengetahui mengapa ini buruk.
Max Vollmer
0
Dalam kasus saya, saya menjalankan container Docker Tensorflow di Ubuntu 20.04: Jalankan container docker Anda di One terminal, saya menjalankannya dengan
docker run -it od
Dan kemudian mulai terminal lain dan berlari di bawah docker psdengan sudo:
sudo docker ps
Saya berhasil mendapatkan id kontainer:
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
e4ca1ad20b84 od "/bin/bash" 18 minutes ago
Up 18 minutes unruffled_stonebraker
Sebenarnya, outputnya sedikit lebih nyaman untuk digunakan daripada itu. Setiap bidang memiliki lebar 20 karakter.
[['CONTAINER ID',0],['IMAGE',20],['COMMAND',40],['CREATED',60],['STATUS',80],['PORTS',100],['NAMES',120]]
docker --list
atau mirip seperti itu? Apa perintah untuk membuat penampung baru? dllJawaban:
Di Linux:
Atau di OS X, Windows:
dimana
containername
nama container anda.Untuk menghindari kesalahan positif, seperti yang dicatat @llia Sidorenko, Anda dapat menggunakan jangkar regex seperti ini:
penjelasan:
-q
untuk diam. hanya mengeluarkan ID-a
untuk semua. berfungsi bahkan jika penampung Anda tidak berjalan-f
untuk filter .^
nama kontainer harus dimulai dengan string ini$
nama wadah harus diakhiri dengan string inisumber
--no-trunc
bendera. jadidocker ps --no-trunc -aqf "name=containername"
docker inspect --format="{{.Id}}" imageName
berhasil untuk saya.Anda bisa mencoba ini:
Pendekatan ini tidak bergantung pada OS.
sumber
NAMES
kolom dengandocker ps
), ini memberikan ID penampung. Jika nama gambar (diberikan diIMAGE
kolom dengandocker ps
) disediakan, itu akan mengeluarkan ID gambar sebagai gantinya.Dapatkan ID kontainer dari menjalankan kontainer ::
Dapatkan ID kontainer dari semua kontainer ::
sumber
docker ps -fq
Namun tidak bekerjadocker ps -qf
(urutan bendera)Perintah berikut:
Memberikan keluaran ini:
sumber
Jika Anda ingin mendapatkan ContainerId lengkap berdasarkan nama Container, gunakan perintah berikut
sumber
Gambar Docker memeriksa ImageName \ ImageId --format = {{'. ConatinerConfig.Hostname'}}
sumber
Dalam kasus saya, saya menjalankan container Docker Tensorflow di Ubuntu 20.04: Jalankan container docker Anda di One terminal, saya menjalankannya dengan
Dan kemudian mulai terminal lain dan berlari di bawah
docker ps
dengan sudo:Saya berhasil mendapatkan id kontainer:
sumber
Cara paling sederhana yang dapat saya pikirkan adalah dengan mengurai keluaran
docker ps
Mari kita jalankan gambar ubuntu terbaru secara interaktif dan sambungkan
Jika Anda menjalankan
docker ps
di terminal lain, Anda dapat melihat sesuatu sepertiSayangnya, mengurai format ini tidak mudah karena menggunakan spasi untuk meratakan barang secara manual
Berikut ini skrip yang mengubah output ke JSON.
https://gist.github.com/mminer/a08566f13ef687c17b39
Sebenarnya, outputnya sedikit lebih nyaman untuk digunakan daripada itu. Setiap bidang memiliki lebar 20 karakter.
[['CONTAINER ID',0],['IMAGE',20],['COMMAND',40],['CREATED',60],['STATUS',80],['PORTS',100],['NAMES',120]]
sumber