Machine: Proposal: Tambahkan `docker-machine exec`

Dibuat pada 29 Apr 2015  ·  5Komentar  ·  Sumber: docker/machine

Ini akan mengatur variabel lingkungan dan kemudian menjalankan perintah. Misalnya

docker-machine exec mymachine docker images
docker-machine exec mymachine ./my-docker-wrapper.sh

Komentar yang paling membantu

Kedengarannya seperti ini yang dilakukan ssh ?

docker-machine ssh mymachine -- ifconfig -a
docker-machine ssh mymachine -- docker info
docker-machine ssh mymachine -- "echo uname -a > test && chmod +x test && ./test"

Bisakah Anda menjelaskan bagaimana itu akan berbeda?

Semua 5 komentar

Kedengarannya seperti ini yang dilakukan ssh ?

docker-machine ssh mymachine -- ifconfig -a
docker-machine ssh mymachine -- docker info
docker-machine ssh mymachine -- "echo uname -a > test && chmod +x test && ./test"

Bisakah Anda menjelaskan bagaimana itu akan berbeda?

Saya tidak ingin itu berjalan di Host buruh pelabuhan, saya ingin itu berjalan secara lokal, tetapi dengan pengaturan buruh pelabuhan untuk berbicara dengan yang jauh. Pada dasarnya versi yang lebih sederhana dari

bash -c "eval $(docker-machine env mymachine);
docker images
"

Saya tidak begitu suka mengubah lingkungan saya di kulit terluar saya, saya terus lupa bahwa saya telah melakukannya, dan kemudian tiba-tiba buruh pelabuhan berperilaku berbeda dan saya bingung.

Ini sedikit bertele-tele, tetapi jika saya ingin menjalankan perintah buruh pelabuhan satu kali pada mesin, saya biasanya menggunakan docker-machine config , yang akan mengeluarkan flag docker untuk koneksi ke mesin yang diberikan:

$ docker $(docker-machine config name) info

Anda juga bisa menulis sedikit alias shell seperti itu jika terlalu banyak mengetik:

dkrm () {
    docker $(docker-machine config $1) "${@:2}"
}

Ini akan mengarahkan klien Docker ke mesin yang ditentukan oleh argumen pertama, dan meneruskan sisanya ke klien Docker.

Penggunaan seperti:

$ dkrm devbox ps
... some containers on the machine "devbox"
$ dkrm staging ps
...some containers on the machine "staging"

Apakah itu membantu?

Saya tidak mengetahui perintah itu, jadi terima kasih untuk itu. Itu memang membantu, tetapi tidak setransparan perintah exec. Misalnya sulit digunakan dengan docker-compose, fig, atau segala jenis skrip pembungkus. Saya punya satu yang membuat Dockerfile dari beberapa file di direktori saat ini dan memasukkannya melalui docker build - .

Saya bisa melakukan sesuatu seperti DOCKER="docker $(docker-machine config mymachine)" ./build.sh dan kemudian memiliki : ${DOCKER:=docker} dalam skrip. Jadi itu bisa diterapkan. Tidak yakin tentang komposisi buruh pelabuhan.

Heh, ya, jika Anda ingin menggunakan docker-compose Anda sebaiknya mengatur variabel lingkungan yang tepat.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat