Docker使用文档
Docker 简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 或 Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker 的优势包括:
- 轻量级:Docker 容器的大小仅几十 MB,相比虚拟机镜像大小几百 MB,节省了硬盘空间。
- 易于使用:Docker 容器通过 Docker 引擎来运行,用户可以直接在宿主机上执行 Docker 命令,无需再学习复杂的虚拟化技术。
- 弹性可伸缩:Docker 容器可以动态扩容或缩容,按需提供服务,非常适合动态环境中快速部署应用。
- 便携性:Docker 容器可以很方便地迁移到其他机器上运行,使得应用的部署和运行环境一致性大大提高。
- 安全:Docker 容器提供的安全机制使得应用的运行环境更加安全。
Docker 常用命令
1.docker通过镜像名称获取镜像id:
docker images -q --filter reference=my_image_name2. docker获取启动容器镜像名称
docker inspect --format='{{.Id}}' my_container_name3. 清理悬空镜像
docker image ls -f dangling=true -q | xargs docker image rm4. 清理所有未使用的镜像
docker image prune -a5. 清理所有未使用的容器
docker container prune6. 清理所有未使用的镜像和容器
docker system prune -a7. 停止所有运行中的容器
docker stop $(docker ps -a -q)8. 删除所有停止的容器
docker rm $(docker ps -a -q)9. 启动容器
docker start my_container_name10. 停止容器
docker stop my_container_name11. 重启容器
docker restart my_container_name12. 进入容器
docker exec -it my_container_name /bin/bash13. 导出容器
docker export my_container_name > my_container_name.tar14. 导入容器
cat my_container_name.tar | docker import - my_image_name15. 列出所有容器
docker ps -a16. 列出所有镜像
docker images17. 删除镜像
docker rmi my_image_name18. 删除容器
docker rm my_container_name19. 登录镜像仓库
docker login registry.example.com20. 推送镜像到镜像仓库
docker push registry.example.com/my_image_name21. 拉取镜像
docker pull registry.example.com/my_image_name22. 运行容器
docker run -d --name my_container_name -p 80:80 my_image_name23. 构建镜像
docker build -t my_image_name .24. 映射容器端口到主机
docker run -d -p 80:80 --name my_container_name my_image_name25. 映射容器目录到主机
docker run -d -v /home/user/my_folder:/var/www/html --name my_container_name my_image_name26. 容器日志
docker logs my_container_name27. 容器内执行命令
docker exec my_container_name ls -l28. 容器内安装软件
docker exec -it my_container_name apt-get update && apt-get install -y nginx29. 容器内创建文件
docker exec -it my_container_name touch /var/www/html/index.html30. 容器内编辑文件
docker exec -it my_container_name nano /var/www/html/index.html31. 容器内查看文件
docker exec -it my_container_name cat /var/www/html/index.html32. 容器内端口映射
docker run -d -p 80:80 --name my_container_name my_image_name33. 容器内目录映射
docker run -d -v /home/user/my_folder:/var/www/html --name my_container_name my_image_name34. 容器内环境变量
docker run -d -e MY_ENV_VAR=my_value --name my_container_name my_image_name35. 容器内运行脚本
docker run -d --name my_container_name my_image_name /bin/bash -c "chmod +x /start.sh && /start.sh"36. 容器内运行后台任务
docker run -d --name my_container_name my_image_name /bin/bash -c "tail -f /var/log/nginx/access.log"37. 容器内运行交互式命令
docker run -it --name my_container_name my_image_name /bin/bash38. 容器内运行命令
docker run --rm --name my_container_name my_image_name ls -l39. 清理构建缓存
TIP
从 Docker 17.07 版本开始,Docker 引入了一个新的命令专门用于清理构建缓存
docker builder pruneTIP
这个命令会删除所有未被使用的构建缓存,释放空间。如果你想要更精细的控制,比如删除一定时间之前的缓存,可以使用 --filter 参数,例如:
# 删除 24 小时前创建的所有构建缓存。
docker builder prune --filter until=24hLinux Docker 使用 host.docker.internal 域名(需配置)
在 Linux Docker 中默认不支持 host.docker.internal,但可以通过以下方式手动配置:
步骤:
- 启动容器时添加 DNS 映射:bash
docker run --add-host=host.docker.internal:host-gateway your_image - 在容器内使用域名访问宿主机:bash
curl http://host.docker.internal:8080
INFO
This is an info box.
TIP
This is a tip.
WARNING
This is a warning.
DANGER
This is a dangerous warning.
Details
This is a details block.
More
powered by ayyyya, with additional features:
- [x] Code highlighting
- [x] Diagrams Check out the documentation for the full list of markdown extensions.
