Ubuntu22.04系统安装使用Docker

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
### 使用 DockerUbuntu 22.04 上运行 Ubuntu 16.04 容器 #### 准备工作 确保已经安装并配置好了 Docker 环境。如果尚未完成这一步骤,可以参考官方文档或其他资源进行安装。 #### 获取 Ubuntu 16.04 镜像 为了创建基于 Ubuntu 16.04 的容器,首先需要拉取对应的镜像: ```bash sudo docker pull ubuntu:16.04 ``` 这条命令会从 Docker Hub 下载最新的 Ubuntu 16.04 版本的镜像[^1]。 #### 创建并启动容器 下载完成后,可以通过下面的命令来启动一个新的交互式的容器实例: ```bash sudo docker run -it --name myubuntu1604 ubuntu:16.04 /bin/bash ``` 这里 `-it` 参数表示以交互模式运行容器;`--name myubuntu1604` 给这个新创建的容器指定了名称 `myubuntu1604`; `/bin/bash` 则是指定进入容器后的默认 shell。 #### 自定义容器设置 (可选) 对于更复杂的场景,比如希望容器能够持久化数据或访问主机上的某些目录,则可以在 `run` 命令中加入额外参数来进行定制化的配置。例如挂载本地文件夹到容器内: ```bash sudo docker run -v /path/on/host:/mnt/data -d --name=myubuntu1604 ubuntu:16.04 tail -f /dev/null ``` 上述例子中的 `-v` 或者 `--mount` 可用于指定卷映射关系,而 `-d` 让容器以后台守护进程的方式运行,最后面的 `tail -f /dev/null` 是为了让容器保持运行状态而不立即退出[^2]。 #### 查看正在运行的容器 要查看当前有哪些容器处于活动状态,可以用如下指令: ```bash sudo docker ps ``` 此命令将列出所有活跃的容器及其基本信息,包括 ID、名称等。 #### 停止和删除容器 当不再需要某个特定容器时,先停止它再将其彻底移除: ```bash sudo docker stop myubuntu1604 sudo docker rm myubuntu1604 ``` 这两条命令分别用来终止名为 `myubuntu1604` 的容器以及清理掉该容器所占用的空间。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

boss-dog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值