了解和理解Docker的使用

简介: Docker背景Docker技术是基于Linux容器 虚拟容器技术的 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的

Docker背景

Docker技术是基于Linux容器 虚拟容器技术的 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。 Docker有优点:快速,一致交付你的应用程序 响应式部署和扩展 在同一个硬件运行更多工作负载。

Docker技术是基于Linux容器 虚拟容器技术的

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

  • Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化
  • 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Docker有优点

以上全部正确

  • Docker有优点:快速,一致交付你的应用程序
  • 响应式部署和扩展
  • 在同一个硬件运行更多工作负载

Docker安装常见的应用

Docker安装常见的应用,包括ubuntu/CentOS/Windows/MacOS/Linux

Nginx/Node.js/PHP/JAVA(openjdk)/MySQL/Tomcat/Redis/MongoDB/Apache

RocketMQ/Zookeeper/Jenkins/elasticsearch几乎所有的应用及微服务

Docker指令

获取镜像

docker pull redis

exit 退出

cker ps (容器有在运行)

docker stop / restart 停止、重启

启动、进入具体容器: docker run -it ubuntu /bin/bash

启动已停止的镜像:docker start b750bbbcfd88

后台运行:docker run -itd --name ubuntu-test ubuntu /bin/bash

进入容器

在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:

docker attach

docker exec:推荐大家使用 docker exec 命令,因为此命令会退出容器终端,但不会导致容器的停止。

运行一个 web 应用

docker pull training/webapp # 载入镜像

docker run -d -P training/webapp python app.py

镜像(Image)

容器(Container)

仓库(Repository)

列出镜像列表

docker images

pull 镜像 上述应用就是镜像,镜像可以指定版本

查找镜像 docker search httpd

删除镜像:docker rmi hello-world

更新镜像:docker commit -m=“提交描述信息” -a=“作者” e218edb10161(容器id) runoob/ubuntu:v2(要创建的目标镜像名)

构建镜像:我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。

每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。

第一条FROM,指定使用哪个镜像源

RUN 指令告诉docker 在镜像内执行命令,安装了什么。。。

然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。

设置镜像标签 docker tag 860c279d2fec runoob/centos:dev

logo:集装箱

网络端口映射

创建应用容器:docker run -d -P (–name(命名)) training/webapp python app.py

新建网络:docker network create -d bridge test-net

运行一个容器并连接到新建的 test-net 网络:

docker run -itd --name test1 --network test-net ubuntu /bin/bash

docker run -itd --name test2 --network test-net ubuntu /bin/bash

//ping测试他们容器之间可以连通,

如果没装ping:apt-get update

apt install iputils-ping

仓库管理:登录到远程的docker

描述 Docker 容器的生命周期。

Docker 容器经历以下阶段:

创建容器

运行容器

暂停容器(可选)

取消暂停容器(可选)

启动容器

停止容器

重启容器

杀死容器

销毁容器

相关文章
|
10天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1211 5
|
9天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1177 87
|
10天前
|
云栖大会
阿里云云栖大会2025年9月24日开启,免费申请大会门票,速度领取~
2025云栖大会将于9月24-26日举行,官网免费预约畅享票,审核后短信通知,持证件入场
1772 12
|
19天前
|
人工智能 运维 安全
|
2天前
|
资源调度
除了nrm-pm,还有哪些工具可以管理多个包管理器的源?
除了nrm-pm,还有哪些工具可以管理多个包管理器的源?
230 127
|
10天前
|
弹性计算 Kubernetes jenkins
如何在 ECS/EKS 集群中有效使用 Jenkins
本文探讨了如何将 Jenkins 与 AWS ECS 和 EKS 集群集成,以构建高效、灵活且具备自动扩缩容能力的 CI/CD 流水线,提升软件交付效率并优化资源成本。
362 0

热门文章

最新文章