文章目录
- 一、docker的概念
-
- 1.docker是什么,有什么用?
- [2.Docker 的核心概念:镜像、容器、仓库](#2.Docker 的核心概念:镜像、容器、仓库)
- 二、docker命令
- 三、docker菜鸟教程
一、docker的概念
1.docker是什么,有什么用?
Docker 是一个开源的容器化平台,用于自动化应用程序的部署、扩展和管理。它通过将应用程序和其所有依赖打包到一个容器中,解决了传统部署中的很多问题,使得应用可以跨不同环境(如开发、测试、生产)运行,而无需担心环境差异。
简单来说,docker就是一个打包的环境。保证了程序在开发、测试、生产环境一致。
2.Docker 的核心概念:镜像、容器、仓库

(1)镜像 (Image)
定义:镜像是一个只读的模板,包含了运行应用所需的所有内容:代码、运行时、库文件、环境变量和配置文件。
特点:
①分层存储:镜像由多个层组成,每一层代表一次修改
②只读性:镜像本身是只读的,不能直接修改
③可复用:同一个镜像可以创建多个容器
④版本管理:通过标签(tag)进行版本管理
类比理解:镜像就像是一个安装程序或者模板,它定义了应用运行所需的一切,但本身不能直接运行。
(2)容器 (Container)
定义:容器是镜像的运行实例,是一个轻量级、可移植的执行环境。
- Docker 容器是一个轻量级、可移植、自给自足的软件环境,用于运行应用程序。
- Docker 容器将应用程序及其所有依赖项(包括库、配置文件、系统工具等)封装在一个标准化的包中,使得应用能够在任何地方一致地运行。
- 容器是操作系统级别的虚拟化,不需要运行完整的操作系统,启动和运行更为高效。
特点:
①隔离性:每个容器都有自己的文件系统、网络和进程空间
②临时性:容器可以被创建、启动、停止、删除
③可写层:容器在镜像基础上添加了一个可写层
④进程级:容器内通常运行一个主进程
类比理解:如果镜像是类,那么容器就是对象实例。一个镜像可以创建多个容器,就像一个类可以创建多个对象。
(3)仓库 (Repository)
定义:仓库是存储和分发镜像的地方,可以包含一个镜像的多个版本。
分类:
①公共仓库:如 Docker Hub,任何人都可以使用
②私有仓库:企业内部搭建,用于存储私有镜像
③官方仓库:由软件官方维护的镜像仓库
Registry vs Repository:
Registry:仓库注册服务器,如 Docker Hub
Repository:具体的镜像仓库,如 nginx、mysql
二、docker命令
1.docker容器
(1)查看容器
bash
docker ps -a
CONTAINER ID: 容器 ID。
IMAGE: 使用的镜像。
COMMAND: 启动容器时运行的命令。
CREATED: 容器的创建时间。
STATUS: 容器状态。
状态有7种:
①created(已创建)
②restarting(重启中)
③running 或 Up(运行中)
④removing(迁移中)
⑤paused(暂停)
⑥exited(停止)
⑦dead(死亡)
PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。
NAMES: 自动分配的容器名称。
(2)创建和启动容器
bash
docker run -it --name my_ubuntu_container ubuntu
运行交互式的容器:
我们通过 docker 的两个参数 -i -t,让 docker 运行的容器实现"对话"的能力:
bash
runoob@runoob:~$ docker run -i -t ubuntu:15.10 /bin/bash
root@0123ce188bd8:/#
各个参数解析:
- -t: 在新容器内指定一个伪终端或终端。
- -i: 允许你对容器内的标准输入 (STDIN) 进行交互。
(3)停止并退出容器
bash
exit
(4)删除容器
加上-f 参数,可以删除正在运行的容器。不然要先 stop 再 rm
bash
docker rm -f <container_id_or_name>
2.docker镜像
(1)通过网址拉取docker镜像
bash
docker image pull harbor.riverbegin.com/pub/enrigin/ubuntu/ubuntu2004:py38-blt
(2)查看本地所有docker镜像:验证镜像是否成功加载
bash
docker images
(3)删除镜像
bash
docker rmi 15e54216b096

(4)保存镜像为压缩包文件
bash
docker save -o ubuntu2004_py38-blt.tar harbor.riverbegin.com/pub/enr/ubuntu/ubuntu2004:py38-blt
(5)从压缩包文件加载镜像
bash
docker load -i ubuntu2004_py38-blt.tar