Docker官方镜像(Official Images)是由Docker公司或上游软件供应商维护的高质量镜像,具有以下特点:
- 经过安全扫描和最佳实践验证
- 提供清晰的文档说明
- 定期更新维护
- 命名中不包含用户名(如直接是nginx
而非someone/nginx
)
Docker Hub搜索:
docker search nginx
官方镜像会在结果中标记为"[OK]"和"OFFICIAL"
查看镜像详情:
docker inspect nginx
在线查看: 访问Docker Hub官网搜索镜像,官方镜像会有"OFFICIAL IMAGE"标识
docker pull nginx:latest
docker run -d -p 80:80 --name my-nginx nginx
-d
: 后台运行-p
: 端口映射(主机端口:容器端口)--name
: 为容器指定名称docker ps
docker stop my-nginx
docker rm my-nginx
docker rmi nginx
docker run -d -p 8080:80 -v /path/to/html:/usr/share/nginx/html nginx
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 mysql:5.7
-e
: 设置环境变量-v /my/own/datadir:/var/lib/mysql
docker run -d --name redis -p 6379:6379 redis redis-server --appendonly yes
--appendonly yes
: 启用持久化docker run -it --rm -v "$PWD":/usr/src/app -w /usr/src/app node:14 node your-app.js
-it
: 交互式终端--rm
: 退出后自动删除容器-v
: 挂载当前目录-w
: 设置工作目录--memory
和--cpus
限制docker scan
检查镜像漏洞端口冲突:
docker run -d -p 8080:80 nginx # 改用其他主机端口
时区问题:
docker run -e TZ=Asia/Shanghai your-image
权限问题:
docker run -u $(id -u):$(id -g) your-image
通过掌握这些基本用法,您可以高效安全地使用Docker官方镜像来构建和部署应用程序。