#云原生征文# Docker-Compose 搭建云桌面实践 原创 精华

Buty9147
发布于 2022-5-29 23:35
浏览
2收藏

Docker-Compose 搭建云桌面实践

@toc

介绍

5月18号观看了高俊峰老师的直播课,https://ost.51cto.com/posts/12918

然后又去了解了一下云桌面的内容,觉得还是以挺有意思的,云桌面有很多优势,

1、防丢失、2、防泄密、3、快速发放、4、移动办公、5、资源按需调整、6、降低运维成本、7、故障快速恢复

再结合docker-compose 或者 k8s 完成快速部署,安逸…

一、部署 Docker 引擎

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo http://mirrors.aliyun.com/docker- ce/linux/centos/docker-ce.repo

yum makecache fast

yum install docker-ce -y

systemctl restart docker

systemctl enable docker

二、下载 Docker-Compose

1. 下载

curl -L https://get.daocloud.io/docker/compose/releases/download/v2.5.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

2. 执行权限

chmod +x /usr/local/bin/docker-compose

3. 查看版本

docker-compose --version

三、通过 Docker-Compose 创建启动云桌面

1. 拉取镜像

docker pull swr.cn-north-1.myhuaweicloud.com/iivey/linux-desk:v1.0

2. 创建操作目录

mkdir /root/cloud-desk

3. 编写docker-compose-linux-desk.yml 文件

cd /root/cloud-desk

通过vi命令编辑 docker-compose-linux-desk.yml 文件,粘贴一下内容。

version: '3.5'
services:
  linux-desk:
    container_name: linux-desk
    image: 'swr.cn-north-1.myhuaweicloud.com/iivey/linux-desk:v1.0'
    shm_size: 2gb
    ports:
      - 5900:5900
      - 6080:6080
    environment:
      - VNC_PASSWD=admin123456
      - GEOMETRY=1280x720
      - DEPTH=24
    volumes:
      - './data/Downloads:/root/Downloads'
      - './data/Documents:/root/Documents'
      - './data/Pictures:/root/Pictures'
      - './data/Videos:/root/Videos'
      - './data/Music:/root/Music'
      - './data/Desktop:/root/Desktop'
    restart: unless-stopped

4. 通过 Docker-Compose启动云桌面容器

docker-compose -f docker-compose-linux-desk.yml up -d

5. 如果是云服务器的话,需要再安全组中增加对6080的入方向的访问

#云原生征文#  Docker-Compose 搭建云桌面实践-鸿蒙开发者社区

6. 访问云桌面
http://主机地址:6080,输入密/码admin123456就可以登录了。

#云原生征文#  Docker-Compose 搭建云桌面实践-鸿蒙开发者社区

#云原生征文#  Docker-Compose 搭建云桌面实践-鸿蒙开发者社区
打开浏览器,访问一下网页,速度真的很好。

#云原生征文#  Docker-Compose 搭建云桌面实践-鸿蒙开发者社区

四、通过 Docker-Compose 批量发放云桌面(人手一个哈)

方法一:

复制一份docker-compose-linux-desk.yml,命名docker-compose-linux-desk2.yml
1.增加一个 linux-desk-service2,
修改2个服务的名称、 container_name、ports、volumes 为不同

version: '3.5'
services:
  linux-desk-service1:
    container_name: linux-desk-1
    image: 'swr.cn-north-1.myhuaweicloud.com/iivey/linux-desk:v1.0'
    shm_size: 2gb
    ports:
      - 5900:5900
      - 6080:6080
    environment:
      - VNC_PASSWD=admin123456
      - GEOMETRY=1280x720
      - DEPTH=24
    volumes:
      - './data/Downloads:/root/Downloads'
      - './data/Documents:/root/Documents'
      - './data/Pictures:/root/Pictures'
      - './data/Videos:/root/Videos'
      - './data/Music:/root/Music'
      - './data/Desktop:/root/Desktop'
    restart: unless-stopped
  linux-desk-service2:
    container_name: linux-desk-2
    image: 'swr.cn-north-1.myhuaweicloud.com/iivey/linux-desk:v1.0'
    shm_size: 2gb
    ports:
      - 5901:5900
      - 6081:6080
    environment:
      - VNC_PASSWD=admin123456
      - GEOMETRY=1280x720
      - DEPTH=24
    volumes:
      - './data2/Downloads:/root/Downloads'
      - './data2/Documents:/root/Documents'
      - './data2/Pictures:/root/Pictures'
      - './data2/Videos:/root/Videos'
      - './data2/Music:/root/Music'
      - './data2/Desktop:/root/Desktop'
    restart: unless-stopped

2. 通过docker-compose启动服务容器

docker-compose -f docker-compose-linux-desk2.yml up -d

#云原生征文#  Docker-Compose 搭建云桌面实践-鸿蒙开发者社区

3.查看启动的容器

docker-compose -f docker-compose-linux-desk2.yml ps

#云原生征文#  Docker-Compose 搭建云桌面实践-鸿蒙开发者社区

#云原生征文#  Docker-Compose 搭建云桌面实践-鸿蒙开发者社区

这种方法,
docker-compose配置文件存在较多重复内容,但是 可以保证 容器名称、端口、目录volumes 不变,适合容器固定长期使用。

方法二:
1. 修改docker-compose-linux-desk.yml 文件,去掉容器名称、对主机 端口 和 volumes 的映射

version: '3.5'
services:
  linux-desk:
    image: 'swr.cn-north-1.myhuaweicloud.com/iivey/linux-desk:v1.0'
    shm_size: 1gb
    ports:
      - 5900
      - 6080
    environment:
      - VNC_PASSWD=admin123456
      - GEOMETRY=1280x720
      - DEPTH=24
    volumes:
      - '/root/Downloads'
      - '/root/Documents'
      - '/root/Pictures'
      - '/root/Videos'
      - '/root/Music'
      - '/root/Desktop'
    restart: unless-stopped

2. 通过 scale 参数 扩展service,一次性创建并启动 2个云桌面服务容器,数量可以指定

docker-compose -f docker-compose-linux-desk.yml up --scale linux-desk=2 -d

#云原生征文#  Docker-Compose 搭建云桌面实践-鸿蒙开发者社区
3. 查看服务容器

docker-compose -f docker-compose-linux-desk.yml ps

#云原生征文#  Docker-Compose 搭建云桌面实践-鸿蒙开发者社区
4. 停止服务容器

docker-compose -f docker-compose-linux-desk.yml stop linux-desk

#云原生征文#  Docker-Compose 搭建云桌面实践-鸿蒙开发者社区
5. 重新启动后,查看服务容器

docker-compose -f docker-compose-linux-desk.yml start
docker-compose -f docker-compose-linux-desk.yml ps

#云原生征文#  Docker-Compose 搭建云桌面实践-鸿蒙开发者社区

这种方法,
容器名称、端口、卷都是自动生成,配置文件内容简单,但每次停止后重新启动,端口、卷会发生变化,适合一次性使用,用完就释放。卷自动映射到宿主的位置在 /var/lib/docker/volumes

#云原生征文#  Docker-Compose 搭建云桌面实践-鸿蒙开发者社区
6. 移除已停止的服务容器

docker-compose -f docker-compose-linux-desk.yml rm

#云原生征文#  Docker-Compose 搭建云桌面实践-鸿蒙开发者社区
移除容器但是映射的卷不会自动删除。
7. 停止并移除服务容器

docker-compose -f docker-compose-linux-desk.yml down

#云原生征文#  Docker-Compose 搭建云桌面实践-鸿蒙开发者社区
8. 查看docker-compose其它命令

#云原生征文#  Docker-Compose 搭建云桌面实践-鸿蒙开发者社区

五、使用 Nginx Proxy Manager 实现反向代理(本步骤需要域名和证书,做代理主要是安全方面的考虑)

1. 编写docker-compose-nginx.yml 文件

cd /root/cloud-desk

通过vi命令编辑 docker-compose-linux-desk.yml 文件,粘贴以下内容

version: "3"
services:
  app:
    image: 'swr.cn-north-1.myhuaweicloud.com/iivey/nginx-proxy-manager:v1.0'
    restart: unless-stopped
    ports:
      - '7080:80'
      - '443:443'
      - '7081:81'
    environment:
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "npm"
      DB_MYSQL_PASSWORD: "npm"
      DB_MYSQL_NAME: "npm"
    volumes:
      - ./data/nginx:/data
      - ./nginx/letsencrypt:/etc/letsencrypt
    depends_on:
      - db
  db:
    image: 'swr.cn-north-1.myhuaweicloud.com/iivey/mariadb-aria:v1.0'
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: 'npm'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'npm'
    volumes:
      - ./data/mysql:/var/lib/mysql

2. 通过docker-compose启动代理容器

docker-compose -f docker-compose-nginx.yml up -d

3. 如果是云服务器的话,需要再安全组中增加对7081的入方向的访问

#云原生征文#  Docker-Compose 搭建云桌面实践-鸿蒙开发者社区

4. 访问代理配置界面

http://主机IP:7081/users

#云原生征文#  Docker-Compose 搭建云桌面实践-鸿蒙开发者社区
第一次登录需要填写个人信息以及修改密/码,完成后登出重新登录

Nginx Proxy Manager默认登陆名和密/码:
Email: admin@example.com
Password: changeme,
更改完,记住密/码哈

5. 添加代理

Hosts ----- New Proxy Host

填写自己的域名,docker0 网卡地址,代理的端口号6080,保存后,点击或输入域名就可以访问啦。如果希望配置https 也可以上传证书,进行相关的配置。
#云原生征文#  Docker-Compose 搭建云桌面实践-鸿蒙开发者社区
#云原生征文#  Docker-Compose 搭建云桌面实践-鸿蒙开发者社区
#云原生征文#  Docker-Compose 搭建云桌面实践-鸿蒙开发者社区


【本文正在参加云原生有奖征文活动】,活动链接:https://ost.51cto.com/posts/12598


©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
已于2022-5-29 23:39:36修改
7
收藏 2
回复
举报
2条回复
按时间正序
/
按时间倒序
红叶亦知秋
红叶亦知秋

楼主这动手能力厉害了

回复
2022-5-30 08:27:08
Buty9147
Buty9147 回复了 红叶亦知秋
楼主这动手能力厉害了

纸上谈来终觉浅

回复
2022-5-30 12:42:30
回复
    相关推荐