1 需求说明
- C++开发环境:gcc/g++
- 可视化开发工具IDE
- 应用于课程实验,开发环境统一,且轻量级
2 从0开始使用Docker构建带桌面开发环境的Ubuntu
2.1 镜像搜索
1 搜索镜像,关键词:ubuntu-desktop
docker search ubuntu-desktop
结果如下:
yemuc@LAPTOP-FIBSOFB0 ~ ❯❯❯ docker search ubuntu-desktop
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
dorowu/ubuntu-desktop-lxde-vnc Docker image to provide HTML5 VNC interface … 619 [OK]
0安装:dorowu/ubuntu-desktop-lxde-vnc
2.2 拉取镜像
命令如下:
docker pull dorowu/ubuntu-desktop-lxde-vnc 2.3 容器运行
命令:
docker run -d --name ubuntu-desktop-lxde-vnc -p 6080:80 -p 5900:5900 -e VNC_PASSWORD=abcd@1234 -v d:/Docker/ubuntu-vnc:/www dorowu/ubuntu-desktop-lxde-vnc
参数说明:
-d 返回容器ID
--name 容器别名
-p 将宿主机和容器的端口进行映射
格式:
宿主机端口:容器端口6080:宿主机在浏览器输入
localhost:6080,则打开一个web版的vnc,在浏览器访问桌面环境5900:可以使用VNC客户端连接
请确保宿主机的端口是可用的
-e VNC_PASSWORD=abcd@1234
浏览器打开vnc,需要输入密码
abcd@1234
-v /dev/shm:/www
将宿主机的文件夹和容器文件夹进行映射,则宿主机和容器可以通过
共享文件夹传递数据格式:
宿主机文件夹 : 端口内文件夹若文件夹不存在,则会新建
对于Windows环境,则参考
-v d:/Docker/ubuntu-vnc:/www将D盘文件夹映射到容器 /www 文件夹
2.4 运行
(1) 打开浏览器,输入:localhost:6080
(2) 通过VNC客户端访问:localhost:5900
2.5 配置开发环境
(1)编译环境:
sudo apt-get update
sudo apt-get install gcc
sudo apt-get install g++(2)开发工具
sudo apt-get install codeblocks codeblocks-dev
终端输入:codeblocks 启动程序3 通过Dockerfile构建镜像
3.1 Dockerfile
# 基础镜像
FROM dorowu/ubuntu-desktop-lxde-vnc
WORKDIR /root
# 拷贝本地文件到镜像
ADD xxx /root/Desktop
ADD xx /root/Desktop
# 更换源
ADD sources.list /etc/apt
# 安装c++工作环境 -y 强制yes
RUN sudo apt-get update && sudo apt-get -y install gcc \
&& sudo apt-get -y install g++ \
&& sudo apt-get -y install codeblocks codeblocks-dev
- ADD的文件,请放在Dockerfile 同级目录
3.2 ubuntu 20.04国内源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse3.3 构建镜像
docker build -t 镜像名称:标签名 .
镜像名称和标签名自定义
最后一个
'.'请不要忽略
3.4 容器运行
同上,使用时请使用-p 暴露端口。
版权声明:本文为i4053原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。