当前位置: 首页 > article >正文

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 update

sudo 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 update

sudo apt-get install docker-ce docker-ce-cli containerd.io
  • 6.查看docker是否安装成功,如果是普通用户有些指令可能没有权限,可以将当前用户添加到 Docker 组
docker -v

docker info

# 将当前用户添加到 Docker 组
sudo usermod -aG docker boss-dog
newgrp docker
groups boss-dog
  • 7.配置镜像加速器
# 输入docker run --rm hello-world有时会报超时,需要配置镜像加速器
sudo mkdir -p /etc/docker

echo '{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://szmlw1af.mirror.aliyuncs.com",
    "https://docker.mirrors.ustc.edu.cn"
  ]
}' | sudo tee /etc/docker/daemon.json

sudo systemctl restart docker
sudo 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 images
    
    docker 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 bash
docker 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:7
docker 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/bash
docker run -it --name=c2 --volumes-from c3 centos:7 /bin/bash

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

4.常用指令

docker ps -a

docker stop 603ff4a03cffe2278b2

docker 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

http://www.kler.cn/a/551738.html

相关文章:

  • 【个人总结】7. Linux 工作三年的嵌入式常见知识点梳理及开发技术要点(欢迎指正、补充)
  • 从零开始构建一个小型字符级语言模型的详细教程(基于Transformer架构)之二模型架构设计
  • 高效执行自动化用例:分布式执行工具pytest-xdist实战!
  • 分布式理论与分布式算法
  • TS .d.ts 到底怎么用?
  • 【小白学AI系列】NLP 核心知识点(七)Embedding概念介绍
  • 构建高效 Python Web 应用:框架与服务器的选择及实践
  • 【NLP 25、模型训练方式】
  • Spring Boot实现跨域
  • Unity项目实战-订阅者发布者模式
  • C语言——指针进阶应用
  • 利用分治策略优化快速排序
  • 2013年下半年软件设计师上午题考察知识点及其详细解释(附真题及答案解析)
  • MAVEN学习
  • 使用brew install python,跟 Mac自带的python版本会发生冲突吗?
  • 【数据结构】(10) 排序算法
  • 《Python实战进阶》专栏 No2: Flask 中间件与请求钩子的应用
  • Gurobi重新激活
  • redis群集-简单部署
  • 【JavaScript】正则表达式综合案例