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

三、docker菜鸟教程

https://www.runoob.com/docker/docker-load-command.html