Docker 入门:一条命令跑起你的第一个容器
刚入行的时候,我最怕的一句话是:“在我电脑上明明能跑。”同一份代码,换台电脑就起不来;开发环境配了半天,到了测试环境又缺依赖。后来我开始用 Docker,这类问题少了大半。今天这篇入门短文,就带你用一条命令跑起第一个容器。
一、Docker 是什么
一句话:Docker 是把应用和它运行所需的环境打包在一起的工具。理解它只需记住三个概念:
- 镜像(Image):只读的模板,好比安装盘,里面装好了应用和依赖。
- 容器(Container):镜像跑起来的实例,好比用安装盘装好的系统,可以启动、停止、删除。
- 仓库(Registry):存放镜像的地方,最常用的是 Docker Hub。
镜像和容器的关系,就像类和对象:一个镜像可以跑出多个容器。
二、装好先验证
装好 Docker 后,先确认它能正常工作:
docker --version
docker run hello-world
第二条命令会从仓库拉取一个很小的测试镜像并运行,看到 “Hello from Docker!” 就说明环境没问题。
三、一条命令跑起 Nginx
直接运行:
docker run -d -p 8080:80 nginx
执行完,打开浏览器访问 http://localhost:8080,就能看到 Nginx 的欢迎页。拆开看这条命令:run 表示运行容器;-d 让容器在后台运行;-p 8080:80 把本机的 8080 端口映射到容器的 80 端口;最后的 nginx 是镜像名,没写版本号时默认用 latest。
四、五个最常用的命令
docker ps # 查看正在运行的容器
docker ps -a # 查看所有容器,包括已停止的
docker stop 容器名或ID # 停止容器
docker rm 容器名或ID # 删除容器
docker logs 容器名或ID # 查看容器日志
docker exec -it 容器名或ID /bin/sh # 进入容器内部
容器 ID 不用写全,前几位能唯一区分就行。刚开始记不住很正常,常用几次就顺手了。
五、写自己的第一个镜像
新建一个文件夹,放一个简单的 index.html,再写一个 Dockerfile:
FROM nginx
COPY index.html /usr/share/nginx/html/index.html
然后构建并运行:
docker build -t my-web .
docker run -d -p 8081:80 my-web
访问 http://localhost:8081,看到的就是你自己的页面。FROM 指定基础镜像,COPY 把文件放进镜像,build 生成镜像,-t 给镜像起名字。
六、新手最容易踩的三个坑
第一,端口被占用。启动时报端口已被分配,换个本机端口就好,比如改成 -p 8082:80。第二,容器一启动就退出。多半是容器里没有前台进程,用 docker logs 看日志找原因;docker run 后面如果没有可执行命令,容器会认为工作做完了。第三,镜像拉取很慢。默认仓库在境外网络,下载大镜像耗时较长,可以配置国内镜像加速地址,改完记得重启 Docker 服务。
小结
今天只做了三件事:理解镜像与容器、跑起一个 Nginx、构建自己的第一个镜像。Docker 的核心思想就是“一次打包,到处运行”。下一步可以学数据卷(让容器里的数据不随删除消失)和 Docker Compose(用一个文件管理多个容器),把本地开发环境彻底装进容器里。
- 点赞
- 收藏
- 关注作者
评论(0)