腾讯云自动发货账号 腾讯云部署Docker容器
你是不是也经历过——
在公司群里看到同事发截图:「Docker已上线,服务稳定」;
而你默默打开终端,输入 docker --version,回车后只飘出一行冰冷的 bash: docker: command not found……
那一刻,不是没装Docker,是根本没摸清从哪开始装。
别慌。今天这篇,不讲「容器是什么」「C/S架构图」,也不甩你一串官网文档链接让你自己啃。我们就干一件事:用腾讯云最便宜的轻量应用服务器(2核2G,月付30块那种),15分钟内把一个带网页的Docker容器跑起来,还能通过域名访问。中间踩过的坑、报过的错、改过的权限、重启过的服务,全给你记下来,连 sudo: command not found 这种离谱问题都帮你预判好了。
第一步:选对机器,别被CVM劝退
腾讯云控制台首页,别一头扎进「云服务器CVM」——那玩意儿要配安全组、VPC、密钥对、弹性公网IP……新手三小时可能还在配子网路由表。
直接搜「轻量应用服务器」,选「按量付费」或「包年包月」,配置选「2核2G」起步(跑个Nginx+Python Flask够用)。镜像选「Ubuntu 22.04 LTS」(比CentOS省心,apt比yum顺手,社区支持更活)。
划重点:创建时勾选「分配公网IP」+「开放全部端口」(测试阶段先放行,后面再收敛)。别信什么「最小权限原则」——你连 dockerd 都还没跑起来呢,先让世界看见你。
第二步:连上去,别输错root密码
拿到IP和密码后,Mac/Linux用户终端敲:ssh root@你的IP地址
Windows用户请用Termius或FinalShell(别用自带CMD!中文乱码+粘贴失效能气哭你)。
首次登录会提示「The authenticity of host … can't be established」,敲 yes 回车就行。如果卡在密码输入后没反应?检查是否开了「键盘输入法」——中文输入法下输的其实是乱码密码,切到英文再试。
第三步:装Docker——但先解决sudo不存在这个玄学bug
Ubuntu默认不带 sudo 命令?真有!尤其轻量服务器某些精简镜像。输 sudo apt update 报错「sudo: command not found」?别删重装,执行这三行:
apt update && apt install -y sudo
echo "root ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
export PATH="/usr/bin:$PATH"
第一行装sudo,第二行给root免密提权(开发机无所谓),第三行补PATH——不然有些命令找不到。
接着才是正经装Docker:
curl -fsSL https://get.docker.com | bash
sudo systemctl enable docker
sudo systemctl start docker
验证:sudo docker run hello-world。如果看到「Hello from Docker!」,恭喜,你已越过第一道生死线。
第四步:跑一个真·能访问的服务
光跑hello-world没用。我们来个带网页的——用官方Nginx镜像,3秒上线:
sudo docker run -d \
--name my-nginx \
-p 8080:80 \
-v $(pwd)/html:/usr/share/nginx/html:ro \
-d nginx:alpine
拆解一下:
• -d 后台运行
• --name 起个好记的名字
• -p 8080:80 把宿主机8080端口映射到容器80口(别直接占80!轻量服务器上腾讯云默认80被占用,先用8080避让)
• -v 挂载本地html文件夹,方便你改网页不用重打镜像
现在建个欢迎页:mkdir html && echo '<h1>我在腾讯云Docker里!</h1><p>时间:$(date)</p>' > html/index.html
浏览器打开 http://你的IP:8080——如果页面出来了,你已经成功90%。
第五步:从8080升级到80,再加个域名(可选但推荐)
想用 http://你的IP 直接访问?得把容器端口换成80,但先确认宿主机80没被占:
sudo lsof -i :80
如果返回空,说明没人抢。停掉刚才的容器:sudo docker stop my-nginx,再重跑:
sudo docker run -d --name my-nginx -p 80:80 -v $(pwd)/html:/usr/share/nginx/html:ro nginx:alpine
此时 http://你的IP 就能直连了。
想绑域名?去腾讯云「DNS解析」控制台,添加A记录指向你的IP。然后在Nginx里配个server块(挂载进容器的html同级新建 conf.d/default.conf):
server {
listen 80;
server_name your-domain.com;
location / {
root /usr/share/nginx/html;
index index.html;
}
}
腾讯云自动发货账号 重启容器:sudo docker restart my-nginx,等DNS生效(通常5分钟内),your-domain.com 就能访问了。
第六步:几个保命小技巧
- 容器挂了怎么办?
sudo docker ps -a看状态,sudo docker logs my-nginx查错误日志(比如端口冲突、权限不足) - 磁盘爆了?
sudo docker system prune -a清理所有未用镜像+容器+缓存(慎用,确认没重要数据) - 想开机自启? 已在第三步设了
systemctl enable docker,但容器本身要加--restart=always参数重跑 - HTTPS呢? 先用Nginx反向代理+Let's Encrypt(acme.sh脚本一键搞定),那是下篇文章的事了——毕竟你刚学会走路,别急着跑马拉松。
最后说句实在话
Docker不是银弹,也不是魔法。它只是把「我本地能跑」变成「换台机器照样能跑」的搬运工。而腾讯云轻量服务器,就是那个不收你押金、不逼你画架构图、允许你犯错重来的沙盒。
所以,别纠结「K8s要不要学」「Service Mesh咋回事」。先把 docker run 敲顺,把网页挂上去,截图发到朋友圈——配文:「我的第一个云原生服务,IP在评论区」。
世界不会因为你会了Docker而改变,但你会因为Docker,少熬三次夜、少背一次锅、多一次跟老板谈需求时说「这个功能,我明天就能给你Demo」的底气。
——现在,关掉这篇文章,打开终端,输 ssh root@ 吧。别怕报错,每个红色字体,都是你亲手点亮的路标。
如果需要更深入咨询了解可以联系全球代理上TG: @cloudcup 他们在云平台领域有更专业的知识和建议,他们有国际阿里云,国际腾讯云,国际华为云,aws亚马逊,谷歌云一级代理的渠道,微软云开户充值。oss防风控上传加密系统。客服1V1服务,支持免实名、免备案、免绑卡。开通即享专属VIP优惠、充值秒到账、官网下单享双重售后支持。