news 2026/5/2 7:51:24

Docker入门:在云服务器上跑你的第一个容器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Docker入门:在云服务器上跑你的第一个容器

Docker入门:在云服务器上跑你的第一个容器

Docker是现在部署应用的主流方式之一,但对新手来说概念有点抽象——镜像、容器、仓库……搞清楚之前看起来云里雾里。

这篇从最实际的角度说:怎么在服务器上装Docker,然后用Docker跑一个Nginx网站,让你有个直观感受。

Docker是什么,为什么要用它

最简单的理解:Docker帮你把应用和它需要的环境打包在一起。不管什么服务器、什么系统,只要装了Docker,同一个"镜像"跑出来的效果都一样,不会出现"在我电脑上能跑,到服务器上就报错"的情况。

对个人来说,Docker的好处是:

  • 部署简单,一条命令就能跑起来一个服务
  • 环境隔离,多个应用互不干扰
  • 方便迁移,换服务器直接迁镜像

准备服务器

Ubuntu 22.04。服务器配置不用高,1核2G就够练手,后面部署实际应用再根据需求升配。

我用的是雨云服务器 rainyun+com,入门配置性价比极高,拿来折腾Docker学习完全够用。
注册时用这个码:2026off可领1张5折券

安装Docker

官方推荐的安装方式:

# 安装依赖sudoaptupdatesudoaptinstall-yca-certificatescurlgnupg# 添加Docker官方GPG keysudoinstall-m0755-d/etc/apt/keyringscurl-fsSLhttps://download.docker.com/linux/ubuntu/gpg|sudogpg--dearmor-o/etc/apt/keyrings/docker.gpgsudochmoda+r /etc/apt/keyrings/docker.gpg# 添加Docker仓库echo"deb [arch=$(dpkg --print-architecture)signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu$(./etc/os-release&&echo"$VERSION_CODENAME")stable"|sudotee/etc/apt/sources.list.d/docker.list>/dev/null# 安装Dockersudoaptupdatesudoaptinstall-ydocker-ce docker-ce-cli containerd.io docker-compose-plugin

验证安装成功:

docker--version

让当前用户不用sudo也能用Docker:

sudousermod-aGdocker$USERnewgrpdocker

跑第一个容器:Nginx

从Docker Hub拉取Nginx镜像并启动:

dockerrun-d-p80:80--namemynginx nginx

参数说明:

  • -d:后台运行(detach)
  • -p 80:80:把容器的80端口映射到主机的80端口
  • --name mynginx:给容器起个名字
  • nginx:使用官方Nginx镜像

执行完,在云服务器安全组放行TCP 80端口,然后浏览器访问服务器IP,看到Nginx欢迎页就说明成功了。

几个常用的Docker命令

# 查看正在跑的容器dockerps# 查看所有容器(包括停止的)dockerps-a# 停止容器dockerstop mynginx# 启动停止的容器dockerstart mynginx# 删除容器(先stop再删)dockerrmmynginx# 查看本地镜像dockerimages# 删除镜像dockerrmi nginx# 查看容器日志dockerlogs mynginx# 进入容器内部dockerexec-itmynginxbash

用Docker Compose同时跑多个服务

实际应用通常需要多个服务配合,比如Web应用 + MySQL + Redis。每个都单独run很麻烦,Docker Compose可以用一个文件定义所有服务,一条命令全部启动。

新建一个文件夹,里面创建docker-compose.yml

version:'3'services:web:image:nginxports:-"80:80"volumes:-./html:/usr/share/nginx/htmldepends_on:-dbdb:image:mysql:8.0environment:MYSQL_ROOT_PASSWORD:你的密码MYSQL_DATABASE:mydbvolumes:-mysql_data:/var/lib/mysqlvolumes:mysql_data:

启动所有服务:

dockercompose up-d

停止:

dockercompose down

这个配置同时启动了Nginx和MySQL,depends_on让Web在MySQL启动后才启动。

挂载自己的网站文件

上面的Nginx例子,怎么让它显示你自己的网页?

-v参数把本地目录挂载进容器:

dockerrun-d-p80:80\-v/root/mysite:/usr/share/nginx/html\--namemynginx nginx

把你的HTML文件放到/root/mysite/里,Nginx就会提供这些文件。

开机自启

启动容器时加--restart always参数:

dockerrun-d-p80:80--restartalways--namemynginx nginx

这样Docker重启、服务器重启后,容器都会自动起来。


Docker上手之后你会发现很多东西都可以用它部署:博客、数据库、各种工具,省去了手动配环境的麻烦。有问题评论区说。

服务器推荐:雨云官网

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/2 7:47:26

如何3分钟免费将B站视频转文字?bili2text完全指南让你效率翻倍

如何3分钟免费将B站视频转文字?bili2text完全指南让你效率翻倍 【免费下载链接】bili2text Bilibili视频转文字,一步到位,输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 还在为整理B站视频内容而烦恼吗&am…

作者头像 李华
网站建设 2026/5/2 7:47:26

Diagon API详解:如何集成到你的项目中

Diagon API详解:如何集成到你的项目中 【免费下载链接】Diagon Interactive ASCII art diagram generators. :star2: 项目地址: https://gitcode.com/gh_mirrors/di/Diagon Diagon是一款强大的交互式ASCII艺术图表生成器,通过其API可以轻松将流程…

作者头像 李华
网站建设 2026/5/2 7:43:25

为什么选择LINE Bot SDK Python:对比其他框架的5大优势分析

为什么选择LINE Bot SDK Python:对比其他框架的5大优势分析 【免费下载链接】line-bot-sdk-python LINE Messaging API SDK for Python 项目地址: https://gitcode.com/gh_mirrors/li/line-bot-sdk-python LINE Bot SDK Python是专为LINE Messaging API打造的…

作者头像 李华
网站建设 2026/5/2 7:39:23

Venus事件系统设计:状态变更监听与过滤器实现

Venus事件系统设计:状态变更监听与过滤器实现 【免费下载链接】venus Filecoin Full Node Implementation in Go 项目地址: https://gitcode.com/gh_mirrors/ve/venus Venus作为Filecoin的Go语言全节点实现,其事件系统是实现链上状态变更监听的核…

作者头像 李华