Docker 新手入门:从安装到第一个容器的避坑指南
Docker 对新手最友好的入门方式,不是先背一堆概念,而是先把一个能访问的服务跑起来,再回头理解镜像、容器、端口和数据卷。
一、安装先对齐环境。Windows 建议用 Docker Desktop 并开启 WSL2 后端,安装后先确认 WSL 已更新,否则容易卡在启动阶段;Mac 直接用 Docker Desktop;Linux 服务器可以用发行版的包管理器安装 Docker Engine。装完先跑 docker version 和 docker info,能看到客户端和服务端信息,才算守护进程真的起来了。如果提示无法连接守护进程,先检查 Docker Desktop 是否已启动、Linux 下服务是否已运行,不要急着重装。
二、跑第一个容器。先跑 docker run hello-world 验证拉取和运行链路通不通;再跑一个真正能访问的服务,例如 docker run -d -p 8080:80 --name my-nginx nginx,浏览器打开 localhost:8080 能看到欢迎页,就说明端口映射通了。这里 -d 是后台运行,-p 是把宿主机 8080 映射到容器 80,--name 是给容器起个好记的名字。之后用 docker ps 看运行中的容器,用 docker logs my-nginx 看日志,用 docker stop 和 docker rm 停掉并删除它。
三、理解几个最容易混的概念。镜像是只读模板,容器是镜像跑起来的实例;删容器一般不删镜像,但容器里没挂载的数据会跟着容器一起丢;端口映射是宿主机端口在前、容器端口在后,写反了就访问不到;容器默认是隔离的,想让它读写宿主机文件,要显式用 -v 做卷挂载。
四、新手最常见的坑。第一,镜像拉取慢或超时,先检查网络和镜像加速配置,换一个可用的加速地址再试,不要反复拉取同一个大镜像。第二,端口被占用,报错里出现 address already in use,就换一个宿主机端口,例如把 8080 改成 8081。第三,容器一启动就退出,大多是因为主进程退出了,先用 docker logs 看最后几行,再检查启动命令是不是以后台守护方式写错了。第四,数据丢失,重要数据一定要挂载到宿主机目录或命名卷,测试用的临时容器可以随便删,带数据的不要随手 docker rm。第五,权限问题,Linux 下如果每次都要 sudo,可以把当前用户加入 docker 组后重新登录,但生产环境不要把权限放得过宽。第六,写 Dockerfile 时基础镜像要固定版本,不要写 latest 就上线;COPY 的顺序会影响缓存,变化少的文件放前面,变化多的放后面;再加一个 .dockerignore,把 node_modules、日志和本地配置文件排除在构建上下文之外。
五、日常清理要谨慎。docker ps -a 能看到已停止的容器,docker images 能看到本地镜像,空间不够时再清理;docker system prune 会删停止的容器、无用网络和悬空镜像,执行前先确认没有要保留的数据和容器。
建议的学习顺序是:装好并验证守护进程,先跑通 hello-world 和 nginx,再练端口、卷和日志,最后才写自己的 Dockerfile 和 docker compose。这样每一步都有可验证的结果,出了问题也容易定位到是安装、网络、端口还是数据的问题。
- 点赞
- 收藏
- 关注作者
评论(0)