千家信息网

怎么在Atomic主机上远程使用Docker

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章将为大家详细讲解有关怎么在Atomic主机上远程使用Docker,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。来自Atomic项目的Atomic主机是一个轻
千家信息网最后更新 2026年11月04日怎么在Atomic主机上远程使用Docker

这篇文章将为大家详细讲解有关怎么在Atomic主机上远程使用Docker,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

来自Atomic项目的Atomic主机是一个轻量级的容器基于的操作系统,它可以运行 Linux 容器。它已被优化为用作云环境的容器运行时系统。例如,它可以托管 Docker 守护进程和容器。有时,你可能需要在该主机上运行 docker 命令,并从其他地方管理服务器。本文介绍如何远程访问 Fedora Atomic 主机(你可以在这里下载到它)上的 Docker 守护进程。整个过程由 Ansible 自动完成 - 在涉及到自动化的一切上,这真是一个伟大的工具!

安全备忘录

由于我们通过网络连接,所以我们使用TLS保护 Docker 守护进程。此过程需要客户端证书和服务器证书。OpenSSL包用于创建用于建立 TLS 连接的证书密钥。这里,Atomic主机运行守护程序,我们的本地的Fedora Workstation充当客户端。

在你按照这些步骤进行之前,请注意,任何在客户端上可以访问 TLS 证书的进程在服务器上具有完全的 root 访问权限。 因此,客户端可以在服务器上做任何它想做的事情。我们需要仅向可信任的特定客户端主机授予证书访问权限。你应该将客户端证书仅复制到完全由你控制的客户端主机。但即使在这种情况下,客户端机器的安全也至关重要。

不过,此方法只是远程访问守护程序的一种方法。编排工具通常提供更安全的控制。下面的简单方法适用于个人实验,可能不适合开放式网络。

获取 Ansible role

Chris Houseknecht 写了一个Ansible role,它会创造所需的所有证书。这样,你不需要手动运行 openssl命令了。 这些在 Ansible role 仓库中提供。将它克隆到你当前的工作主机。

$ mkdir docker-remote-access  $ cd docker-remote-access $ git clone https://github.com/ansible/role-secure-docker-daemon.git

创建配置文件

接下来,你必须创建 Ansible 配置文件、清单inventory和剧本playbook文件以设置客户端和守护进程。以下说明在 Atomic 主机上创建客户端和服务器证书。然后,获取客户端证书到本地。***,它们会配置守护进程以及客户端,使它们能彼此交互。

这里是你需要的目录结构。如下所示,创建下面的每个文件。

$ tree docker-remote-access/ docker-remote-access/ ├── ansible.cfg ├── inventory ├── remote-access.yml └── role-secure-docker-daemon

ansible.cfg:

$ vim ansible.cfg
[defaults] inventory=inventory

清单文件(inventory):

$ vim inventory
[daemonhost] 'IP_OF_ATOMIC_HOST' ansible_ssh_private_key_file='PRIVATE_KEY_FILE'

将清单文件(inventory) 中的 IP_OF_ATOMIC_HOST 替换为 Atomic 主机的 IP。将 PRIVATE_KEY_FILE 替换为本地系统上的 SSH 私钥文件的位置。

剧本文件(remote-access.yml):

$ vim remote-access.yml
- name: Docker Client Set up   hosts: daemonhost   gather_facts: no   tasks:     - name: Make ~/.docker directory for docker certs       local_action: file path='~/.docker' state='directory'     - name: Add Environment variables to ~/.bashrc       local_action: lineinfile dest='~/.bashrc' line='export DOCKER_TLS_VERIFY=1\nexport DOCKER_CERT_PATH=~/.docker/\nexport DOCKER_HOST=tcp://{{ inventory_hostname }}:2376\n' state='present'     - name: Source ~/.bashrc file       local_action: shell source ~/.bashrc - name: Docker Daemon Set up   hosts: daemonhost   gather_facts: no   remote_user: fedora   become: yes   become_method: sudo   become_user: root   roles:     - role: role-secure-docker-daemon       dds_host: "{{ inventory_hostname }}"       dds_server_cert_path: /etc/docker       dds_restart_docker: no   tasks:     - name: fetch ca.pem from daemon host       fetch:         src: /root/.docker/ca.pem         dest: ~/.docker/         fail_on_missing: yes         flat: yes     - name: fetch cert.pem from daemon host       fetch:         src: /root/.docker/cert.pem         dest: ~/.docker/         fail_on_missing: yes         flat: yes     - name: fetch key.pem from daemon host       fetch:         src: /root/.docker/key.pem         dest: ~/.docker/         fail_on_missing: yes         flat: yes     - name: Remove Environment variable OPTIONS from /etc/sysconfig/docker       lineinfile:         dest: /etc/sysconfig/docker         regexp: '^OPTIONS'         state: absent     - name: Modify Environment variable OPTIONS in /etc/sysconfig/docker       lineinfile:         dest: /etc/sysconfig/docker         line: "OPTIONS='--selinux-enabled --log-driver=journald --tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/server-cert.pem --tlskey=/etc/docker/server-key.pem -H=0.0.0.0:2376 -H=unix:///var/run/docker.sock'"         state: present     - name: Remove client certs from daemon host       file:         path: /root/.docker         state: absent     - name: Reload Docker daemon       command: systemctl daemon-reload     - name: Restart Docker daemon       command: systemctl restart docker.service

访问 Atomic 主机

现在运行 Ansible 剧本:

$ ansible-playbook remote-access.yml

确保 tcp 端口 2376 在你的 Atomic 主机上打开了。如果你在使用 Openstack,请在安全规则中添加 TCP 端口 2376。 如果你使用 AWS,请将其添加到你的安全组。

现在,在你的工作站上作为普通用户运行的 docker 命令与 Atomic 主机的守护进程通信,并在那里执行命令。你不需要手动 ssh 或在 Atomic 主机上发出命令。这可以让你远程、轻松、安全地启动容器化应用程序。

如果你想克隆 Ansible 剧本和配置文件,这里是 git 仓库。

关于"怎么在Atomic主机上远程使用Docker"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

主机 客户 客户端 文件 证书 进程 运行 安全 命令 容器 服务器 服务 剧本 配置 清单 程序 篇文章 系统 仓库 工具 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技名片 新华互联网科技学校 互联网扶贫科技 科技互联网技术 海南购全球互联网科技 广西拼得多互联网科技有限公司 阿里互联网科技公司 互联网金融科技公司干啥的 互联网科技与管理 荆州市昕露互联网络科技有限公司 青岛科技大学互联网大赛研究生 青海科技产业互联网发展 中国互联网十大科技股排名 长沙茂晟互联网科技有限公司 中科明德北京互联网科技 滨湖区互联网智能科技产品有哪些 从那以后互联网科技有限公司 易租星互联网科技有限公司 互联网时代高科技布局 科技互联网专业工作会议发言稿 湖南永感互联网科技有限公司 智能科技公司是互联网公司吗 上海互联网科技有限公司 中国航天科技大学国际工业互联网 西安小鹰速贷互联网科技有限公司 互联网科技创新的路径 威龙国际互联网科技公司 江苏互联网科技小贷 科技互联网经济论坛 华人运通互联网科技公司
0