前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >让Docker20运行在Ubuntu20里的Ubuntu20上

让Docker20运行在Ubuntu20里的Ubuntu20上

作者头像
dhyuan
发布2022-05-30 14:29:06
7970
发布2022-05-30 14:29:06
举报
文章被收录于专栏:响应式编程响应式编程

0) 前提

Ubuntu HOST 已经安装了 KVM 环境并工作良好。

1) 在 Ubuntu KVM HOST 上安装 ansible

代码语言:javascript
复制
sudo apt install -y software-properties-common
sudo apt-add-repository --yes --update ppa:ansible/ansible
sudo apt install -y ansible

2) 安装其它相关工具包

代码语言:javascript
复制
sudo apt install -y --no-install-recommends \
dnsmasq \
git \
genisoimage \
libguestfs-tools \
libosinfo-bin \
python3-libvirt \
python3-lxml \
qemu-utils \
virtinst

### 3) checkout virt-infra 代码库

这是ansible用于创建host、guest的playbook脚本和设置。

代码语言:javascript
复制
mkdir ~/devenv_bootstrap

git clone https://github.com/dhyuan/virt-infra-ansible.git
cd virt-infra-ansible
git check -b devenv origin/devenv

cd roles
git clone https://github.com/dhyuan/ansible-role-virt-infra.git
git check -b devenv orign.devenv

4) 确保宿主机上有个网桥的名字与客户机定义文件所用网络名一致。

比如 inventory/ubuntu20Server.yml 中我们定义了网桥网络使用 br0。

代码语言:javascript
复制
virt_infra_networks:
        - name: br0

5) 使用 ansible 在 ubuntu 宿主机上安装客户机

在http://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img 下载镜像保持到 host 的 /var/lib/libvirt/images 目录。确保 kvmhost 上的/etc/hosts 中没有定义对 ubuntu20Server 的 ip 映射。注意修改ubuntu20Server中的mac避免冲突。

代码语言:javascript
复制
apt install -y ansible
ansible-playbook --limit kvmhost,ubuntu20Server ./virt-infra.yml

删除已安装guest虚拟机的命令:

代码语言:javascript
复制
ansible-playbook ./virt-infra.yml --limit kvmhost,ubuntu20Server --extra-vars virt_infra_state=undefined

6) 创建完毕,通过 virt-manager 启动客户机。

测试网络的连通性,在 kvmhost 上 ping ubuntu20Server。有问题可以通过 ip 命令查看,进行必要的网卡启动等操作、检查/etc/netplan/....yml 文件、执行 netplan apply 等操作。

7) 下载在 VM 安装 Docker 的脚本,并安装

在 kvmhost 上执行:

代码语言:javascript
复制
ansible-galaxy install \
--roles-path ~/.ansible/roles/ \
git+https://github.com/haxorof/ansible-role-docker-ce.git,3.3.2

ansible-galaxy list

~/devenv_bootstrap/virt-infra-ansible/install_docker.yml 里定义了 ansbile 所用配置。执行以下语句,将在第五步创建的 VM ubuntu20Server 中安装 Docker 20.10.4。

代码语言:javascript
复制
ansible-playbook ./install_docker.yml --limit ubuntu20Server -v --extra-vars docker_version=5:20.10.4~3-0~ubuntu-focal

可以通过 docker_users 参数指定加入 docker group 的用户,使用 ali 镜像下载 docker 安装包:

代码语言:javascript
复制
ansible-playbook ./install_docker.yml \
--limit ubuntu20Server -v \
--extra-vars docker_version=5:20.10.4~3-0~ubuntu-focal \
--extra-vars '{"docker_users": ["devops"] }' \
-e '{"docker_repository_url": {"Ubuntu20": "http://mirrors.aliyun.com/docker-ce/linux/ubuntu/dists/focal/Release"}}'

登录到guest虚机ubuntu20Server验证docker工作正常。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 响应式编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档