> 技术文档 > Ubuntu22.04系统安装使用Docker_ubuntu22.04安装docker

Ubuntu22.04系统安装使用Docker_ubuntu22.04安装docker


目录

  • 1.安装Docker
    • 1.1 安装步骤
  • 2.Docker命令
    • 2.1 服务相关命令
    • 2.2 镜像相关命令
    • 2.3 容器相关命令
  • 3.Docker容器的数据
    • 3.1 数据卷概念
      • 数据卷
    • 3.2 数据卷作用
    • 3.3 数据卷配置
      • 一个容器挂载多个数据卷:
      • 一个数据卷挂载多个容器:
    • 3.4 数据卷容器
        • 配置数据卷容器
  • 4.常用指令

1.安装Docker

  本机系统:
Linux boss-dog 6.8.0-52-generic #53~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Jan 15 19:18:46 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

  Docker 可以安装在 64 位的 x86 平台或 ARM 平台上。Ubuntu 发行版中,LTS(Long-Term-Support)长期支持版本,会获得 5 年的升级维护支持,这样的版本会更稳定,因此在生产环境中推荐使用 LTS 版本。

Docker官方安装文档:https://docs.docker.com/engine/install/ubuntu/

1.1 安装步骤

  • 1.卸载旧版本

旧版本的 Docker 称为 docker 或者 docker-engine,使用以下命令卸载旧版本:

sudo apt-get remove docker docker-engine docker.io
  • 2.由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改,因此首先需要添加使用 HTTPS 传输的软件包以及 CA 证书
sudo apt-get updatesudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
  • 3.为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  • 4.向 sources.list 中添加 Docker 软件源
echo \"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable\" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null# 以上命令会添加稳定版本的 Docker APT 镜像源,如果需要测试版本的 Docker 请将 stable 改为 test
  • 5.更新 apt 软件包缓存,并安装 docker-ce
sudo apt-get updatesudo apt-get install docker-ce docker-ce-cli containerd.io
  • 6.查看docker是否安装成功,如果是普通用户有些指令可能没有权限,可以将当前用户添加到 Docker 组
docker -vdocker info# 将当前用户添加到 Docker 组sudo usermod -aG docker boss-dognewgrp dockergroups boss-dog
  • 7.配置镜像加速器
# 输入docker run --rm hello-world有时会报超时,需要配置镜像加速器sudo mkdir -p /etc/dockerecho \'{ \"registry-mirrors\": [ \"https://docker.m.daocloud.io\", \"https://szmlw1af.mirror.aliyuncs.com\", \"https://docker.mirrors.ustc.edu.cn\" ]}\' | sudo tee /etc/docker/daemon.jsonsudo systemctl restart dockersudo systemctl restart docker

2.Docker命令

2.1 服务相关命令

  • 启动docker服务
    systemctl start docker
  • 停止docker服务
    systemctl stop docker
  • 重启docker服务
    systemctl restart docker
  • 查看docker服务状态
    systemctl status docker
  • 设置开机启动docker服务
    systemctl enable docker

2.2 镜像相关命令

  • 查看镜像:查看本地所有的镜像

    docker imagesdocker images -q # 查看所用镜像的id
  • 搜索镜像:从网络中查找需要的镜像

    docker search 镜像名称
  • 拉取镜像:从docker仓库下载镜像到本地,镜像名称格式为名称:版本号,如果版本号不指定则是最新的版本。

    如果不知道镜像版本,可以去 docker hub搜索对应镜像查看。

    docker pull 镜像名称

    拉取指定CPU架构并且指定ubuntu版本的docker:

    # aarch64 (arm v8) CPU架构:docker pull --platform=linux/aarch64 ubuntu:22.04# x86_64 CPU架构:docker pull --platform=linux/x86_64 ubuntu:22.04

    查看镜像的架构:

    docker image inspect ubuntu:22.04 | grep Architecture# \"Architecture\": \"arm64\",

    查看主机架构:

    arch# x86_64
  • 删除镜像:删除本地镜像

    docker rmi 镜像id # 删除指定本地镜像docker rmi `docker images -q` # 删除所有本地镜像

2.3 容器相关命令

  • 查看容器
docker ps #查看正在运行的容器docker ps -a #查看所有容器
  • 创建并启动容器
docker run 参数
  • 进入 容器
docker exec 参数 容器名称/容器id bashdocker exec -it test bash
  • 停止容器
docker stop 容器名称/容器id
  • 启动容器
docker start 容器名称/容器id
  • 删除容器:如果容器是运行状态则删除失败,需要停止容器才能删除。
docker rm 容器名称/容器id
  • 查看容器信息
docker inspect 容器名称/容器id

3.Docker容器的数据卷

3.1 数据卷概念

数据卷

  • 数据卷是宿主机中的一个目录或文件
  • 当容器目录和数据卷目录绑定后,对方的修改会立即同步
  • 一个数据卷可以被多个容器同时挂载
  • 一个容器也可以挂在多个数据卷

3.2 数据卷作用

  • 容器数据持久化
  • 外部机器和容器间接通信
  • 容器之间数据交换

3.3 数据卷配置

创建启动容器时,使用-v参数设置数据卷

docker run … -v 宿主机目录(文件):容器目录(文件)…

注意事项:

  • 目录必须是绝对路径(/开头是绝对,./开头是相对)
  • 如果目录不存在,会自己创建
  • 可以挂载多个数据卷

一个容器挂载多个数据卷:

docker run -it --name=c2 \\ -v ~/data2:/root/data2 \\ -v ~/data3:/root/data3 \\ centos:7

centos:7表示镜像为centor,版本为7

一个数据卷挂载多个容器:

docker run -it --name=c3 -v ~/data:/root/data centos:7docker run -it --name=c4 -v ~/data:/root/data centos:7

3.4 数据卷容器

多容器进行数据交换:

1.多个容器挂载同一个数据卷

2.数据卷容器

配置数据卷容器

1.创建启动c3数据卷容器,使用-v参数设置数据卷

docker run -it --name=c3 -v /volume centos:7 /bin/bash

c3容器的目录是/volume,宿主机目录会自己分配一个,可以使用docker inspect 容器名称/容器id指令进行查看。

2.创建启动c1c2容器,使用--volumes-from 参数设置数据卷

docker run -it --name=c1 --volumes-from c3 centos:7 /bin/bashdocker run -it --name=c2 --volumes-from c3 centos:7 /bin/bash

c1c2容器的目录也是/volume,宿主机目录和c3是同一个目录。

4.常用指令

docker ps -adocker stop 603ff4a03cffe2278b2docker rm 603ff4a03cffe2278b2# 拷贝本机上的文件到docker环境中docker cp test.zip 62471a960847:/root/opencv/lib_cmake# 拷贝docker环境中的文件到本机上docker cp <容器ID或容器名称>:<容器内路径> <本机路径>docker cp my_container:/usr/local/myfolder /home/user/myfolder

猪八哥时尚生活