Docker 入门实操:从安装到第一个容器
【摘要】 Docker 把应用和运行环境打包成镜像,换台机器照样跑;本文从安装验证、镜像与容器、数据挂载、Dockerfile 到日常排错,十分钟上手第一个容器。
部署应用最头疼的就是"在我机器上能跑"。Docker 把应用和它的运行环境打包成镜像,换台机器照样跑,十分钟就能上手。
一、安装与验证
Ubuntu 上用官方源安装:
sudo apt update && sudo apt install -y docker.io
sudo systemctl enable --now docker
docker --version
把当前用户加进 docker 组,之后就不用每次都 sudo:
sudo usermod -aG docker $USER
改完要重新登录一次才生效。验证:docker run hello-world,看到欢迎信息说明安装成功。
二、镜像与容器:先分清这两个词
镜像是只读模板,容器是镜像跑起来的实例。常用命令就六个:
docker pull nginx:latest # 拉镜像
docker images # 看本地有哪些镜像
docker run -d -p 8080:80 nginx # 后台跑一个 Nginx 容器
docker ps # 看正在跑的容器
docker stop <容器名或ID前几位> # 停容器
docker rm <容器名> # 删容器
-p 8080:80 的意思是把宿主机 8080 端口映射到容器里的 80 端口,浏览器打开 http://服务器IP:8080 就能看到 Nginx 欢迎页。
三、数据别放容器里:挂载卷
容器删了,里面的数据也跟着没了。持久数据要用卷挂载:
docker run -d -p 8080:80 -v /srv/www:/usr/share/nginx/html nginx
/srv/www 是宿主机目录,/usr/share/nginx/html 是容器里的网站根目录。改宿主机上的文件,容器里的网站立刻跟着变。
四、自己的应用:写个 Dockerfile
三行就能把一个静态站打包成镜像:
FROM nginx:alpine
COPY . /usr/share/nginx/html
EXPOSE 80
构建并运行:
docker build -t my-site:v1 .
docker run -d -p 8080:80 my-site:v1
改了代码就重新 build 一个版本(v2、v3……),旧版本随时能回滚,部署变成了一件可重复的事。
五、日常排错
docker logs <容器名> # 看容器日志,排错第一步
docker exec -it <容器名> sh # 进容器里看现场
docker ps -a # 包括已退出的容器
docker system prune # 清理没用的镜像和容器(定期做,省磁盘)
容器启动后立刻退出?八成是启动命令出错,先 docker logs 看最后一行报错,别急着重建。
小结
Docker 的核心就三件事:镜像是模板、容器是实例、数据要挂载。先从跑官方镜像开始,熟悉 run / ps / logs / exec 这几个命令,再学写自己的 Dockerfile。容器化之后,换机器部署就是 pull 加 run 两条命令的事。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)