docker
私はしばらくこれを使用してきましたが、dockerを起動するたびに次のコマンドを作成します。
eval $(docker-machine env)
eval
必ず必要な場合以外は使用しないことを知っていますが、以下ではこれについて言及します。
docker-machine env
出力環境変数は次のとおりです。
docker-machine env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://<some_ip>:<some_port>"
export DOCKER_CERT_PATH="/home/gableroux/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell:
# eval $(docker-machine env)
eval
これをつかみ、現在のセッションにロードします。
それでは、次のようなエイリアスが必要な場合はどうすればよいですか?
alias dockereval="eval $(docker-machine env)"
構文は問題ありませんが、問題は、そのファイルにエイリアスを登録するときに.zshrc
ドットファイルの内容(例:)が評価されることです。$()
source
which dockereval
明らかにする
dockerenv: aliased to eval
私は次のいくつかを試しました。
alias dockereval="docker-machine env | eval"
alias dockereval="docker-machine env | /bin/bash"
alias dockereval="eval `docker-machine env`"
しかし、それらのどれも働かなかった。 2番目はおそらく別のセッションで実行されているので、3番目は$()
私が推測したものです。
エイリアスを使用してこれらの環境変数をロードする他の方法はありますか?
ベストアンサー1
エイリアスを二重引用符ではなく一重引用符で囲みます。
alias dockereval='eval $(docker-machine env)'
二重引用符は変数の拡張を許可しますが(少なくともbashでは)一重引用符は許可しません。