Docker--了解及基础使用篇

Docker--了解及基础使用篇

Docker 架构:

Docker 包括三个基本概念:

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。客户端及我们用到终端命令。 服务端通常为一个守护进程。

安装

Windows

以下步骤仅限于Win10系统,其他版本没做尝试

  1. 首先下载Docker Desktop
  2. 开启Hyper-V: 控制面板>程序>启用或关闭Windows功能>Hyper-V,选中确定即可。或者通过命令Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All 也可以。
  3. 安装WSL2
  4. 安装 Docker Desktop for Windows
  5. 输入命令docker run hello-world 验证是否安装成功。首先发现没有镜像hello-world则会进行拉取, 然后运行容器打印"Hello from Docker!"

Linux

CentOS

一行命令解决安装:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

然后运行docker:

sudo systemctl start docker

验证安装:

sudo docker run hello-world

开启开机自启动与其他服务类似:

sudo systemctl enable docker

镜像管理

查看镜像

docker images

删除镜像

docker rmi -f 镜像名称:tag

创建容器并启动

基本语法如下:

docker run [options] image [command] [arg...]

常用option:

  • -d: 后台运行
  • -i: 以交互模式运行容器,即通过终端进行交互, 通常与-t配合使用
  • -t: 用于指定容器交互的终端, 一般指定为/bin/bash
  • -p: 指定端口映射, 格式为: 宿主机端口: 容器端口
  • -e: 设置环境变量, 格式为: 变量名=变量值
  • --volume,-v: 挂载, 格式为: 宿主机路径:容器内路径
  • --name="somename": 为容器指定一个名称

例如:

docker run -dit /bin/bash -p 6080:80 --gpus=all -e USER=ubantu -e HTTP_PASSWORD=ubantu -v E:\exchange:/dev/shm ubuntu-desktop-20.04:mod1 

上述例子实例化ubuntu-desktop-20.04:mod1镜像的一个容器, 并指定为后台运行的交互式运行。 宿主端口6080映射到80, 指定了多个环境变量,指定了挂载路径。

若想启动容器不启动可参考 docker create

删除容器

docker rm -f 容器id或名称

查看容器

docker ps

查看已停止容器:

docker ps -a

启动/停止/重启容器

start/stop/restart 容器id或名称

进入正在运行的容器

docker exec -it 容器id /bin/bash

持久化容器

容器只是镜像的一个实例, 只是运行在内存中。 就好比声明类(镜像), 实例化对象(容器)一样,而持久化容器就好比类实例序列化。

在 Docker 中,有三种方式可以将容器中的文件系统保存为镜像:

  1. docker commit:将当前容器的文件系统保存为一个新的镜像。该镜像包含容器中的所有修改,包括新创建的文件、修改的配置等,但不包括容器的状态和元数据。
docker commit -a 作者  -m 提交说明  容器id  镜像名称:tag
  1. docker save:将指定的镜像及其所有依赖镜像打包成一个 tar 文件,并导出到本地文件系统。导出的 tar 文件包含完整的镜像和依赖镜像,包括镜像的元数据和状态信息。
docker save -o 指定存储到本地的文件路径  镜像名称:tag
  1. docker export:将当前容器的文件系统打包成一个 tar 文件,并导出到本地文件系统。导出的 tar 文件包含容器中的所有文件,但不包括容器的状态和元数据。
docker export -o 指定存储到本地的文件路径   容器id或名称

上述容器的状态和元数据通常如下:

  • 运行状态:包括容器的 PID(进程 ID)、CPU 和内存使用情况、网络配置、文件系统挂载点和容器的健康状态等。
  • 元数据:包括镜像的名称、版本、标签、创建时间、镜像 ID、容器的名称、ID、创建时间、启动命令、端口映射、环境变量、网络配置、容器的标签和注释等。
  • 容器日志等信息

导入镜像

docker import 本地导出的文件路径  指定镜像名称:tag

其他实用命令

  1. 拷贝宿主机器文件到容器中
docker cp 宿主机器路径  容器id:容器中路径
  1. 查看容器中运行的进程
docker top
posted @ 2023-07-19 21:46  汗牛充栋  阅读(14)  评论(0编辑  收藏  举报