首页/新闻资讯/正文详情

Docker部署Ubuntu22.04容器全指南

发布时间:2026/11/12 2:41:09 来源:云帆数科 栏目:资讯中心
Docker部署Ubuntu22.04容器全指南
1. Docker与Ubuntu22.04部署概述在当今的开发和运维环境中容器化技术已经成为不可或缺的一部分。Docker作为最流行的容器平台之一能够帮助我们快速部署和运行各种应用环境。而Ubuntu 22.04 LTSJammy Jellyfish作为最新的长期支持版本提供了稳定的基础系统环境。将两者结合使用可以为我们提供一个轻量级、可移植且一致的开发或生产环境。与传统的虚拟机相比Docker容器更加轻量启动速度更快资源占用更少。通过Docker部署Ubuntu 22.04我们可以在几秒钟内获得一个干净的Ubuntu系统环境而不需要像传统方式那样进行完整的系统安装。这对于需要频繁创建和销毁测试环境的开发者来说尤其有价值。2. 环境准备与Docker安装2.1 系统要求检查在开始之前我们需要确保主机系统满足运行Docker的基本要求64位操作系统x86_64或arm64架构Linux内核版本3.10或更高推荐4.x或更高对于Windows和macOS用户需要安装Docker Desktop可以通过以下命令检查Linux内核版本uname -r2.2 Docker引擎安装对于Ubuntu/Debian系统官方推荐的安装方式如下首先更新软件包索引sudo apt-get update安装必要的依赖包sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release添加Docker官方GPG密钥sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg设置稳定版仓库echo \ deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null安装Docker引擎sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin验证安装是否成功sudo docker run hello-world如果看到Hello from Docker!的消息说明安装成功。注意在生产环境中建议将用户添加到docker组以避免每次都需要sudo但要注意这会有安全风险sudo usermod -aG docker $USER3. 获取Ubuntu 22.04 Docker镜像3.1 官方镜像介绍Docker Hub上提供了官方维护的Ubuntu镜像这些镜像经过优化体积较小且安全可靠。Ubuntu 22.04的官方镜像标签为ubuntu:22.04或ubuntu:jammy。3.2 拉取Ubuntu 22.04镜像使用以下命令拉取最新的Ubuntu 22.04镜像docker pull ubuntu:22.04拉取完成后可以使用以下命令查看已下载的镜像docker images输出应该类似于REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 22.04 a8780b506fa4 2 weeks ago 77.8MB可以看到官方Ubuntu 22.04镜像非常精简只有约78MB大小。3.3 验证镜像完整性为了确保下载的镜像没有被篡改可以验证其签名docker trust inspect --pretty ubuntu:22.04输出中应该显示Signatures for部分确认镜像已经过官方签名。4. 运行Ubuntu 22.04容器4.1 基本运行方式最简单的运行命令是docker run -it ubuntu:22.04这将以交互模式(-i)启动容器并分配一个伪终端(-t)。你会看到root用户的提示符表示已经进入了容器内部。4.2 常用运行参数在实际使用中我们通常会添加一些参数来增强容器的功能后台运行容器docker run -d --name my_ubuntu ubuntu:22.04 sleep infinity映射主机端口到容器docker run -p 8080:80 ubuntu:22.04挂载主机目录到容器docker run -v /host/path:/container/path ubuntu:22.04设置环境变量docker run -e MY_VARvalue ubuntu:22.04限制资源使用docker run --memory512m --cpus1 ubuntu:22.044.3 容器管理命令掌握基本的容器管理命令对于日常使用非常重要查看运行中的容器docker ps查看所有容器包括停止的docker ps -a停止容器docker stop container_id启动已停止的容器docker start container_id进入运行中的容器docker exec -it container_id bash删除容器docker rm container_id删除镜像docker rmi image_id5. 自定义Ubuntu 22.04容器5.1 基础系统配置默认的Ubuntu 22.04镜像非常精简很多常用工具都没有安装。我们可以先进行基础配置更新软件包列表apt-get update安装常用工具apt-get install -y \ curl \ wget \ vim \ git \ net-tools \ iputils-ping \ dnsutils设置时区可选ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime DEBIAN_FRONTENDnoninteractive apt-get install -y tzdata5.2 创建自定义镜像为了复用这些配置我们可以基于修改后的容器创建新的镜像首先在修改后的容器中退出但不要停止容器使用commit命令创建新镜像docker commit container_id my-ubuntu:22.04更好的方式是使用Dockerfile来自动化这个过程FROM ubuntu:22.04 RUN apt-get update \ apt-get install -y \ curl \ wget \ vim \ git \ net-tools \ iputils-ping \ dnsutils \ rm -rf /var/lib/apt/lists/* RUN ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ DEBIAN_FRONTENDnoninteractive apt-get install -y tzdata CMD [bash]然后构建镜像docker build -t my-ubuntu:22.04 .5.3 优化镜像大小为了保持镜像精简有几个最佳实践合并RUN命令减少镜像层清理apt缓存rm -rf /var/lib/apt/lists/*使用多阶段构建对于需要编译的环境选择更小的基础镜像如ubuntu:22.04比ubuntu:latest更明确6. 常见问题与解决方案6.1 容器内systemd服务无法启动Ubuntu 22.04默认使用systemd但在Docker容器中直接运行systemd会遇到问题。解决方案运行容器时添加特权模式docker run --privileged -it ubuntu:22.04或者在Dockerfile中使用init系统替代RUN apt-get install -y dumb-init ENTRYPOINT [/usr/bin/dumb-init, --]6.2 时区设置问题容器内的时区默认是UTC要设置为本地时区ENV TZAsia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime echo $TZ /etc/timezone6.3 中文支持如果需要中文支持RUN apt-get install -y locales \ locale-gen zh_CN.UTF-8 \ update-locale LANGzh_CN.UTF-8 ENV LANG zh_CN.UTF-8 ENV LANGUAGE zh_CN:zh ENV LC_ALL zh_CN.UTF-86.4 容器网络配置查看容器网络信息docker inspect container_id | grep IPAddress连接容器网络docker network create my_network docker run --networkmy_network ubuntu:22.047. 高级部署场景7.1 使用Docker Compose编排对于复杂应用可以使用docker-compose.yml文件定义服务version: 3 services: ubuntu_service: image: ubuntu:22.04 container_name: my_ubuntu volumes: - ./data:/data ports: - 8000:80 environment: - TZAsia/Shanghai restart: unless-stopped然后运行docker-compose up -d7.2 持久化数据管理Docker容器默认是临时的要持久化数据可以使用绑定挂载Bind Mountsdocker run -v /host/path:/container/path ubuntu:22.04卷Volumesdocker volume create my_volume docker run -v my_volume:/container/path ubuntu:22.047.3 容器资源限制在生产环境中限制容器资源使用非常重要docker run \ --memory512m \ --cpus1 \ --cpu-shares512 \ --blkio-weight500 \ ubuntu:22.047.4 容器监控与日志查看容器日志docker logs container_id监控容器资源使用docker stats使用cAdvisor进行高级监控docker run \ --volume/:/rootfs:ro \ --volume/var/run:/var/run:ro \ --volume/sys:/sys:ro \ --volume/var/lib/docker/:/var/lib/docker:ro \ --publish8080:8080 \ --detachtrue \ --namecadvisor \ google/cadvisor:latest8. 安全最佳实践8.1 非root用户运行默认情况下容器以root用户运行这有安全风险。更好的做法在Dockerfile中创建用户RUN useradd -ms /bin/bash appuser USER appuser或者运行时指定用户docker run -u 1000 ubuntu:22.048.2 只读文件系统对于不需要写入的容器可以设置为只读docker run --read-only ubuntu:22.04对于需要写入的特定目录可以单独挂载docker run --read-only -v /path/to/writable:/data ubuntu:22.048.3 安全扫描定期扫描镜像中的漏洞docker scan ubuntu:22.048.4 网络隔离限制容器的网络访问docker network create --internal isolated_network docker run --networkisolated_network ubuntu:22.049. 性能优化技巧9.1 镜像构建优化利用构建缓存将不经常变化的指令放在Dockerfile前面使用.dockerignore文件排除不必要的文件多阶段构建减少最终镜像大小9.2 容器运行时优化限制资源使用如前所述使用--tmpfs挂载临时文件系统docker run --tmpfs /tmp ubuntu:22.04调整swappinessdocker run --memory-swappiness0 ubuntu:22.049.3 存储驱动选择根据主机环境选择合适的存储驱动overlay2, aufs, devicemapper等可以通过以下命令查看当前驱动docker info | grep Storage Driver10. 实际应用案例10.1 开发环境容器化创建一个Python开发环境FROM ubuntu:22.04 RUN apt-get update \ apt-get install -y python3 python3-pip \ rm -rf /var/lib/apt/lists/* WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt CMD [python3]10.2 数据库服务部署部署MySQL服务docker run -d \ --name mysql_server \ -e MYSQL_ROOT_PASSWORDmysecretpassword \ -e MYSQL_DATABASEmyapp \ -e MYSQL_USERuser \ -e MYSQL_PASSWORDpassword \ -v mysql_data:/var/lib/mysql \ -p 3306:3306 \ ubuntu:22.04 \ sh -c apt-get update apt-get install -y mysql-server service mysql start tail -f /dev/null10.3 Web服务部署部署Nginx web服务器FROM ubuntu:22.04 RUN apt-get update \ apt-get install -y nginx \ rm -rf /var/lib/apt/lists/* \ echo daemon off; /etc/nginx/nginx.conf EXPOSE 80 CMD [nginx]构建并运行docker build -t my-nginx . docker run -d -p 8080:80 my-nginx

相关推荐

安卓手机打印Word/Excel/PPT:老式激光一体机局域网方案
安卓手机打印Word/Excel/PPT:老式激光一体机局域网方案

1. 先把需求掰开揉碎:手机打 Word/Excel/PPT 到底卡在哪手机打印文件这件事,听起来是个"点一下打印按钮"的动作,真上手就知道它不是。Android 手机连接打印机,本质上要同时打通三层:手机端得有一个能把文档渲… · 2026/11/3 14:51:45

树莓派从开箱到稳定运行:选型、烧录、GPIO与排障全流程
树莓派从开箱到稳定运行:选型、烧录、GPIO与排障全流程

树莓派这块小板子,我前后上手过十几块,从最早只能点亮一个 LED 的型号,到后来能跑容器、能当小型图像处理节点的版本,中间踩的坑基本没落下过。很多人对它的第一印象是"便宜的迷你电脑",买回来插上电源、烧个… · 2026/11/3 0:33:33

AST解混淆技术:原理、实战与应用场景
AST解混淆技术:原理、实战与应用场景

1. AST解混淆技术概述AST(Abstract Syntax Tree,抽象语法树)解混淆是现代代码安全领域的一项重要技术。简单来说,它就像是对经过加密或混淆处理的代码进行"外科手术式"的解析和还原。当开发者为了保护知识产权或防止逆向… · 2026/11/3 19:02:03

特种作业操作证r1还是r2好 郑州报考避坑指南
特种作业操作证r1还是r2好 郑州报考避坑指南

特种作业操作证r1还是r2好 郑州报考避坑指南 证书过期了不知道怎么复审延期,这事儿我见过太多人被坑。去年我有个朋友,本来好好的电工证快到期了,结果他稀里糊涂没搞清楚怎么复审,一拖就是半年,工作也丢了。现在市面上证书种类繁多,尤其是特种作业… · 2026/11/12 2:40:51

宁陵哪里能考电工证,考前押题让你一次过
宁陵哪里能考电工证,考前押题让你一次过

宁陵哪里能考电工证,考前押题让你一次过 实操考试心里没底怕挂科,尤其是第一次报考的电工证,很多人担心自己操作不熟练、理论不过关,结果一上考场就慌了。但其实只要提前准备,尤其是考前押题练得扎实,通过率还是挺高的。今天我们就从… · 2026/11/12 2:40:51

新昌县电工证快速拿证千万别踩坑 工地太忙根本没时间复习考试
新昌县电工证快速拿证千万别踩坑 工地太忙根本没时间复习考试

新昌县电工证快速拿证千万别踩坑 工地太忙根本没时间复习考试 工地太忙根本没时间复习考试,新昌县电工证快速拿证成了很多工友的首选。但别以为花钱就能快速拿证, 千万别踩坑 ,否则轻则耽误工期,重则影响职业生涯。… · 2026/11/12 2:40:51

鹿邑在哪办电工证内部消息来了,实操考试心里没底怕挂科?
鹿邑在哪办电工证内部消息来了,实操考试心里没底怕挂科?

鹿邑在哪办电工证内部消息来了,实操考试心里没底怕挂科? 实操考试心里没底怕挂科?你不是一个人。最近很多在鹿邑准备报考或换证的电工朋友都在问: 鹿邑在哪办电工证内部消息… · 2026/11/12 2:40:51

电工证学徒最新政策解读,内部消息揭秘实操考试通关技巧
电工证学徒最新政策解读,内部消息揭秘实操考试通关技巧

电工证学徒最新政策解读,内部消息揭秘实操考试通关技巧 实操考试心里没底怕挂科?你不是一个人。作为电工证学徒,很多人在备考过程中最怕的就是实操部分,一不小心就挂科,白白浪费时间和精力。其实, 内部消息… · 2026/11/12 2:40:51

工厂常见的特种工官方回应:怕考不过白交培训费?这些细节必须知道
工厂常见的特种工官方回应:怕考不过白交培训费?这些细节必须知道

工厂常见的特种工官方回应:怕考不过白交培训费?这些细节必须知道 怕考不过白交培训费?很多在工厂干特种作业的工人,报名前总担心花了钱、花了时间,最后还是考不过,白白浪费。官方回应,近年特种作业证书考试通过率稳步提升,但仍然存在不少“挂证”“代… · 2026/11/12 2:39:51

电工证丢失还能补吗?千万别踩坑,丢了证等于失业
电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/11 12:18:07

电力电缆作业证直播报名入口与办理流程良心建议
电力电缆作业证直播报名入口与办理流程良心建议

电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/11 19:07:25

英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑

英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/11 17:14:54

电工证设年审有效期多久官方回应来了,工地太忙根本没时间复习考试
电工证设年审有效期多久官方回应来了,工地太忙根本没时间复习考试

电工证设年审有效期多久官方回应来了,工地太忙根本没时间复习考试 工地太忙根本没时间复习考试,这是很多一线电工、焊工、高处作业人员的真实写照。尤其是像你这样刚毕业的鹤壁工程类毕业生,一边要找工作,一边要考证,时间紧张,复习效率低。但你可能不知… · 2026/11/12 0:00:56

新乡电工证实操怕挂科?电工作业动漫图+报考避坑全解析
新乡电工证实操怕挂科?电工作业动漫图+报考避坑全解析

新乡电工证实操怕挂科?电工作业动漫图+报考避坑全解析 实操考试心里没底怕挂科?你不是一个人。新乡的水利工程从业者,很多在报考电工证的时候都担心自己操作不熟练、考试不通过, 千万别踩坑 ,选对资料和方法真的能提高通过率。… · 2026/11/12 0:00:56

网电工证千万别踩坑:实操考试心里没底怕挂科怎么破?
网电工证千万别踩坑:实操考试心里没底怕挂科怎么破?

网电工证千万别踩坑:实操考试心里没底怕挂科怎么破? 实操考试心里没底怕挂科,这是很多准备报考【网电工证】的学员最真实的感受。尤其是在高压电工、低压电工等工种上,操作环节的容错率极低,一旦失误就可能直接被判定不合格。很多人因为担心挂科而放弃考… · 2026/11/12 0:00:56

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/10 20:19:29

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/10 19:22:45

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/11 17:15:20

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码