Docker入门实践(五)

什么是容器?

定义

容器是每个应用组件的独立进程,它完全和你机器的其他东西隔离。

  • 独立性:每个容器包含所有它需要的功能,不依赖于主机上预安装的依赖项。
  • 隔离行:由于容器是隔离运行的,它们对主机和其他容器的影响最小,增加了应用的安全性。
  • 独立性:每个容器独立管理,删除一个容器不会影响其他容器。
  • 可移植性:容器可以允许在任何地方,运行在开发机器的容器也能够同样地方式在数据中心或其它云平台中运行。

容器与虚拟机的区别

虚拟机是一整个包含自己内核、硬件驱动、程序和应用的操作系统。容器只是一个独立的进程,它拥有运行所需的所有文件。如果运行多个容器,它们都共享相同的内核,从而允许在更少的基础设施上运行更多的应用程序。您经常会看到容器和vm一起使用。例如,在云环境中,供应的机器通常是vm。但是,与提供一台机器来运行一个应用程序不同,具有容器运行时的VM可以运行多个容器化的应用程序,从而提高资源利用率并降低成本。

用法

1. 运行容器
docker run -d -p 8080:80 docker/welcome-to-docker
2. 查看运行中的容器
docker ps
3. 停止容器
docker stop <the-container-id>

tips:当按ID引用容器时,不需要提供完整的ID。您只需要提供足够的ID以使其唯一。

什么是镜像?

定义

容器映像是一个标准化的包,其中包含运行容器所需的所有文件、二进制文件、库和配置。

用法

1. 搜索镜像
docker search docker/welcome-to-docker
2. 拉取镜像
docker pull docker/welcome-to-docker
3. 查看已拉取到本地的所有镜像
docker image ls
4. 查看构成镜像的所有层
docker image history docker/welcome-to-docker

什么是注册中心?

定义

注册中心是存储和共享容器映像的集中位置。它可以是公共的,也可以是私人的。

注册中心与仓库的区别

注册中心是存储和管理容器映像的集中位置,而存储库是注册中心内相关容器映像的集合。把它想象成一个文件夹,你可以根据项目来组织你的图像。每个存储库包含一个或多个容器映像。

用法

上传自己的镜像到注册中心流程。
0. 注册DockerHub账号并创建仓库。
1. 准备要打包的文件
git clone https://github.com/dockersamples/helloworld-demo-node
2. 通过dockerfile打包
cd helloworld-demo-node
docker build -t <YOUR_DOCKER_USERNAME>/docker-quickstart .
3. 创建镜像文件
docker build -t <YOUR_DOCKER_USERNAME>/docker-quickstart .
4. 查看镜像文件
docker images
5. 启动容器
docker run -d -p 8080:8080 <YOUR_DOCKER_USERNAME>/docker-quickstart 
6. 为镜像打标签
docker tag <YOUR_DOCKER_USERNAME>/docker-quickstart <YOUR_DOCKER_USERNAME>/docker-quickstart:1.0 
7. 将镜像推送至镜像仓库
docker push <YOUR_DOCKER_USERNAME>/docker-quickstart:1.0

什么是组件?

定义

使用Docker Compose,你可以在一个单一的YAML文件中定义所有的容器及其配置。如果将该文件包含在代码存储库中,任何克隆您的存储库的人都可以使用一个命令启动并运行。

用法

1. 准备程序
git clone https://github.com/dockersamples/todo-list-app 
2. 通过compose启动应用
docker compose up -d --build
3. 停止应用
docker compose down
docker compose down --volumes(会同时移除持久化卷)
posted on 2024-09-30 17:19  Simle  阅读(3)  评论(0编辑  收藏  举报