markdown 使用docker客户端连接到另一台主机,而无需修改本地Docker安装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown 使用docker客户端连接到另一台主机,而无需修改本地Docker安装相关的知识,希望对你有一定的参考价值。

# Run commands on remote Docker host  
This is how to connect to another host with your docker client, without modifying your local Docker installation or when you don't have a local Docker installation.  

## Enable Docker Remote API  
First be sure to enable the Docker Remote API on the remote host.  

This can easily be done with a container.  
For HTTP connection use [jarkt/docker-remote-api](https://hub.docker.com/r/jarkt/docker-remote-api/).  
For HTTPS connection use [whiledo/docker-remote-api-tls](https://hub.docker.com/r/whiledo/docker-remote-api-tls/).  

You can also configure the Docker engine to expose the remote API. Read [Enable Docker Remote API with TLS client verification](https://gist.github.com/kekru/974e40bb1cd4b947a53cca5ba4b0bbe5) for more information.

## Download docker client  
If you don't have a local Docker installation, you need to download the docker client, which is a simple executable.  
You find the docker client for Linux, MacOS and Windows on [download.docker.com](https://download.docker.com/).  
Take a file of the `static` directory, e.g. [linux/static/stable/x86_64/docker-17.12.0-ce.tgz](https://download.docker.com/linux/static/stable/x86_64/), and unzip it. You only need the `docker` or `docker.exe` file.

As linux user you can also use this tiny [script](https://gist.github.com/kekru/fd6cd68239d6da87ca1b1a55564c1921) to download it.   

## Set alias (for Linux) 
For HTTP connection set the following alias:  
`alias dockerx="docker -H=your-remote-server.org:2375"`  

For HTTPS connection set the following alias:  
`alias dockerx="docker --tlsverify -H=your-remote-server.org:2376 --tlscacert=/home/me/docker-tls/ca.pem --tlscert=/home/me/docker-tls/cert.pem --tlskey=/home/me/docker-tls/key.pem"`   

## Create .bat file (for Windows)
Create a file "docker.bat".  
For HTTP connection the content of the bat file should be:  
`docker -H=your-remote-server.org:2375 %*`  

For HTTPS connection the content of the bat file should be:  
`docker --tlsverify -H=your-remote-server.org:2376 --tlscacert=C:\users\me\docker-tls\ca.pem --tlscert=C:\users\me\docker-tls\cert.pem --tlskey=C:\users\me\docker-tls\key.pem %*`  

## HTTPS connection configuration 
Docker's Remote API client authentication works with certificates. See [Protect the Docker daemon socket](https://docs.docker.com/engine/security/https/) or my [Enable Docker Remote API with TLS client verification](https://gist.github.com/kekru/974e40bb1cd4b947a53cca5ba4b0bbe5) on how to create server and client certificates.   
Copy ca.pem (CA certificate), cert.pem (client certificate) and key.pem (client's private key) in `/home/me/docker-tls/` or `C:\users\me\docker-tls\`. 

## Run commands  
Now you can run commands on the remote machine with `dockerx` (Linux) or `docker.bat` (Windows) instead of `docker`.  
Examples:  
`dockerx ps`   
`docker.bat ps`  

以上是关于markdown 使用docker客户端连接到另一台主机,而无需修改本地Docker安装的主要内容,如果未能解决你的问题,请参考以下文章

Eureka 客户端无法使用 docker 连接到服务器

无法使用 JDBC 连接到 docker 中的本地 MySQL

我无法使用 DataGrip 数据库客户端从本地主机连接到 docker 中的 mysql

如何在不使用 *** 映像的情况下连接到 docker 中的 ***?

Prometheus Docker - 连接到外部机器

docker组件