YBFACC / blog

仅记录个人学习使用
3 stars 0 forks source link

Portainer远程连接docker #43

Open YBFACC opened 3 years ago

YBFACC commented 3 years ago

在本地使用portainer来管理远程服务器上的docker。

安装docker参考上面👆的教程

portainer直接使用docker拉取镜像,映射端口即可。

具体流程:

  1. systemctl status docker 找到docker配置文件的位置

  2. vim /usr/lib/systemd/system/docker.service 编辑这个文件

    ExecStart的后面加上 -H 0.0.0.0:2376 开启远程访问(注意打开防火墙)

  3. 重启docker

    systemctl daemon-reload

    systemctl restart docker

  4. Portainer配置

    33

    完成配置后,你就能正常访问。

    但是存在安全问题,你的docker谁都可以访问,添加tls提高安全性。

增加tls增加安全性

参考文章中配置TLS的操作

原文链接:Docker配置TLS认证开启远程访问

原文作者:张巍的烂笔头

1、2、3步推荐在本地创建一个文件夹进行存放

cd ~/
mkdir ssl
cd ./ssl
  1. 生成CA公钥和私钥(本地)

    // 1. 生成 ca key  需要设置一个密码,密码后面的配置会要求输入。
    openssl genrsa -aes256 -out ca-key.pem 4096
    
    // 2. 创建 ca 公钥
    openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem
  2. 创建client证书(本地)

    // 客户端证书
    openssl genrsa -out key.pem 4096
    // 客户端签名请求文件
    openssl req -subj '/CN=client' -new -key key.pem -out client.csr
    echo extendedKeyUsage = clientAuth > extfile-client.cnf
    // CA 签名
    openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile-client.cnf
  3. 创建server端证书(本地)

    //创建 server key
    openssl genrsa -out server-key.pem 4096
    
    //证书签名请求文件 /CN后的填使用正式的ip或者域名
    openssl req -subj "/CN=你的ip地址" -sha256 -new -key server-key.pem -out server.csr
    
    //使用 CA 证书签名文件
    
    // extfile.cnf IP:XXXX 允许访问的ip
    echo subjectAltName = DNS:你的DNS,IP:你的IP地址,IP:127.0.0.1 >> extfile.cnf
    echo extendedKeyUsage = serverAuth >> extfile.cnf
    
    //生成签名证书
    openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem  -CAcreateserial -out server-cert.pem -extfile extfile.cnf
  4. 上传

    将本地的ca.pemserver-cert.pemserver-key.pem这3个文件上传到服务器中。

    推荐将这3个文件放在一个文件夹中

    cd /root
    mkdir ./tls

    上传文件可以使用scp命令,也可以使用vscode的远程模式。只需要装个插件Visual Studio Code Remote - SSH,对不熟悉vim操作的同学比较友好。

  5. server端配置(远程)

    vim  /usr/lib/systemd/system/docker.service 

    注意替换为自己的路径,在ExecStart中写入tls的配置

    7777

  6. portainer配置

    11

选择你对应的文件并update endpoint,大功告成。