Docker 是个容器引擎,核心是让应用带上环境一起打包部署。跟虚拟机不同,容器共享宿主机内核,启动秒级,资源开销小。
三个基本概念
镜像(Image):只读模板,包含运行应用所需的一切——代码、运行时、库、环境变量、配置文件。类似面向对象里的类。
容器(Container):镜像的运行实例,可读可写。启动、停止、删除都操作容器。类似类实例化的对象。
仓库(Repository):存镜像的地方。官方仓库叫 Docker Hub,也可以自建私有仓库。拉取用 `docker pull`,推送用 `docker push`。
安装 Docker
不同系统装法不一样,只说最常用的 Linux(Ubuntu/Debian)和 macOS/Windows。
Ubuntu/Debian
先卸载旧版本(如果有的话):
sudo apt-get remove docker docker-engine docker.io containerd runc
更新包索引,安装依赖:
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 Engine:
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!” 说明成功。
macOS
去 Docker 官网下载 Docker Desktop for Mac,双击安装。装完顶部菜单栏会有鲸鱼图标。打开终端就能用 `docker` 命令。
Windows
同样下载 Docker Desktop for Windows。需要开启 WSL2(Windows Subsystem for Linux 版),安装向导会引导。装完重启,任务栏托盘出现鲸鱼图标。
免 sudo 运行(Linux)
默认情况下 Docker 守护进程绑定 Unix socket,只有 root 能访问。每次敲 `sudo` 烦,把当前用户加入 docker 组:
sudo usermod -aG docker $USER
退出终端重新登录,或者执行 `newgrp docker` 让组生效。之后直接 `docker ps` 不用加 sudo。
常用命令速查
拉镜像:
docker pull nginx:latest
跑容器(前台):
docker run -it --rm ubuntu:22.04 bash
`-it` 交互式终端,`–rm` 退出后自动删容器。
跑容器(后台):
docker run -d -p 8080:80 --name my-nginx nginx
`-d` 后台运行,`-p 8080:80` 把宿主机 8080 端口映射到容器 80 端口。
查看运行中的容器:
docker ps
查看所有容器(包括已停止):
docker ps -a
停止容器:
docker stop my-nginx
删除容器:
docker rm my-nginx
查看镜像列表:
docker images
构建镜像(需要 Dockerfile):
docker build -t my-app:1.0 .
Docker Compose
多容器场景用 Compose 编排。写一个 `docker-compose.yml` 文件,定义服务、网络、卷。启动一条命令:
docker compose up -d
停止:
docker compose down
关于服务器部署
如果你需要一台云服务器跑 Docker,雨云性价比高、稳定、好用,支持按量付费。装好 Docker 后,把代码打成镜像推上去,拉下来跑就行。
常见问题
端口被占用:换个映射端口,或者先停掉占用的服务。
磁盘空间:`docker system prune -a` 清理未使用的镜像、容器、网络、构建缓存。慎用,会删掉没在用的镜像。
容器退出码 139:通常是内存不足或程序崩溃,检查宿主机内存和容器资源限制。
权限拒绝:确认当前用户是否在 docker 组里,或者用 sudo 临时解决。
装完 Docker 第一件事:跑 `docker run hello-world` 验证环境。拉个 nginx 试试端口映射。别怕删容器,容器删了镜像还在,重新跑一个就是。
雨云是国内一家老牌云服务商,提供高性价比的云服务器和虚拟主机。我用它部署了好几个项目,速度和稳定性都不错。通过 https://www.rainyun.com/SAJA_ 注册可以领一张 5折优惠券,有需要的朋友可以看看。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END



暂无评论内容