Docker 入门完全指南
容器这东西,用上了就回不去了。比虚拟机轻,比装环境快,一套走天下。
先搞清楚几个概念
- 镜像(Image):只读模板,类似装系统的ISO
- 容器(Container):镜像跑起来的实例,类似装好系统的虚拟机
- 仓库(Registry):存镜像的地方,Docker Hub是最大的公共仓库
安装
# Ubuntucurl-fsSLhttps://get.docker.com|shsudousermod-aGdocker$USER# Macbrewinstall--caskdocker# Windows# 下载Docker Desktop,开启WSL2后端装完验证:
docker--versiondockerrun hello-world镜像操作
# 拉镜像dockerpull nginx:1.25# 看本地镜像dockerimages# 删除镜像dockerrmi nginx:1.25# 搜索镜像dockersearch nginx容器操作
# 跑容器dockerrun-d--namemy-nginx-p80:80 nginx:1.25# 看运行中的容器dockerps# 看所有容器(含停止的)dockerps-a# 停止/启动/重启dockerstop my-nginxdockerstart my-nginxdockerrestart my-nginx# 进容器里看dockerexec-itmy-nginxbash# 看容器日志dockerlogs my-nginxdockerlogs-fmy-nginx# 实时跟踪# 删容器dockerrmmy-nginxdockerrm-fmy-nginx# 强制删运行中的端口映射
# -p 宿主机端口:容器端口dockerrun-d-p8080:80 nginx# 访问localhost:8080dockerrun-d-p127.0.0.1:3306:3306 mysql# 只本机访问dockerrun-d-Pnginx# 随机映射端口数据挂载
# -v 宿主机路径:容器路径dockerrun-d-v/data/nginx:/usr/share/nginx/html nginx# 具名卷dockerrun-d-vnginx-data:/usr/share/nginx/html nginx环境变量
dockerrun-d-eMYSQL_ROOT_PASSWORD=123456mysql:8.0dockerrun-d--env-file ./env.list nginx清理
# 删停止的容器dockercontainer prune# 删没用的镜像dockerimage prune# 全清(慎用)dockersystem prune-a常见坑
- 容器删了数据就没了,重要数据必须挂载卷
- 容器内时区默认UTC,加
-e TZ=Asia/Shanghai或挂载时区文件 - 容器内root就是宿主机root,生产环境用
-u指定用户 - 端口被占用先查
netstat -tlnp | grep 端口号
Docker入门就这么点东西,记住pull/run/exec三板斧就能干活了。后面再慢慢学网络、数据卷、编排这些。