Docker-1
概述
https://yeasy.gitbook.io/docker_practice/container
Docker 是一个开源的容器化平台,它允许开发者打包应用及其所有依赖项到一个轻量级、可移植的容器中,从而简化了部署和管理应用程序的过程。
核心概念:
- 容器(Containers):
- 容器是 Docker 的核心概念。它是一个标准化的单元,用于软件开发,包含应用程序及其所有依赖。
- 容器是轻量级的,因为它们共享宿主机的操作系统内核,但运行在隔离的环境中。
- 镜像(Images):
- 镜像是一个轻量级、只读的模板,用于创建 Docker 容器的实例。
- 镜像包含运行容器所需的所有内容——代码、运行时、库、环境变量和配置文件。
- Dockerfile:
- Dockerfile 是一个文本文件,包含了一系列指令,用于自动构建 Docker 镜像。
- 它定义了创建镜像所需的步骤和顺序。
- Docker Hub 和仓库:
- Docker Hub 是 Docker 的公共仓库,用于存储和分享镜像。
- 用户可以从 Docker Hub 下载公共镜像,或上传自己的镜像。
特点和优势:
便携性:
- 由于 Docker 容器包含应用程序及其所有依赖,它可以在任何支持 Docker 的环境中无缝运行。
轻量级:
- 容器利用宿主机的内核,不需要像虚拟机那样模拟整个操作系统,这使得它们非常轻量级和高效。
隔离性:
- 每个容器在运行时都处于隔离的环境中,确保了进程和资源的隔离。
可伸缩性和模块化:
- Docker 支持微服务架构,使得应用程序可以被拆分成较小、独立的服务,从而提高可伸缩性和灵活性。
快速部署:
- Docker 容器可以在几秒钟内启动,大大加快了开发和部署过程。
应用场景:
- 开发和测试:Docker 提供了一致的环境,保证开发、测试和生产环境的一致性。
- 微服务架构:Docker 支持微服务架构的快速部署和扩展。
- 持续集成/持续部署(CI/CD):Docker 可以与 CI/CD 工具链集成,自动化软件发布过程。
- 云计算和虚拟化:Docker 可以在私有云、公共云和混合云环境中部署。
Docker 的出现极大地改变了软件开发和部署的方式,它的轻量级特性和便携性解决了“在我的机器上可以运行”的问题,并加速了从开发到生产的软件交付过程。
Quick Start
安装
macOS通过 Homebrew 安装桌面版
brew install --cask docker
配置
基本是开箱即用的,但是可能从 docker hub 上拉取镜像的时候会比较慢,可以配置加速器
加速器配置方式:
Settings -> Docker Engine,会有一个json用于配置
1 |
|
镜像加速器参照https://gist.github.com/y0ngb1n/7e8f16af3242c7815e7ca2f0833d3ea6
配置完成后,点击 Apply & Start
,重启后生效。
Hello World
执行命令
1 |
|
会输出Hello World
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
命令可以解释为:运行一个 ubuntu:15.10 的容器,执行命令 /bin/echo “Hello World”
Docker会先在本地仓库查找镜像是否存在,如果不存在就会从 Docker Hub 下载公共镜像。
(如果没有指定15.10版本,则默认寻找最新版本 latest)
容器使用
docker pull IMAGE
从docker hub 拉取镜像
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
1 |
|
docker ps
:查看当前运行中的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
docker stop CONTAINER
停止容器
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
和run的格式差不多
docker rm -f CONTAIL ID
删除容器
docker container prune
清理所有终止状态的容器