Ubuntu服务器之Docker
Mtian
本文距离上次更新已过去 0 天,部分内容可能已经过时,请注意甄别。

安装 Docker 环境

一键脚本(仅个人使用推荐) curl -fsSL https://get.docker.com | bash -s docker

手动安装(生产环境推荐)
  • 更新软件包索引,并且安装必要的依赖软件,来添加一个新的 HTTPS 软件源

    1
    2
    sudo apt update
    sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
  • 使用下面的 curl 导入源仓库的 GPG key:

    1
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  • 将 Docker APT 软件源添加到你的系统:

    1
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  • 现在,Docker 软件源被启用了,你可以安装软件源中任何可用的 Docker 版本。

  • 想要安装 Docker 最新版本,运行下面的命令。

    1
    2
    sudo apt update
    sudo apt install docker-ce docker-ce-cli containerd.io
  • 运行sudo apt update可能会有Warning
    解决方法参考ubuntu 22.04 修复 key is stored in legacy trusted.gpg keyring

  • 以非 Root 用户身份执行 Docker

    1
    sudo usermod -aG docker $USER

Docker 操作

容器相关

查看信息

  • 查看已部署的容器

    1
    2
    docker ps  # 仅显示正常运行的容器
    docker ps -a # 所有容器
  • 查看容器日志

    1
    docker logs [CONTAINER]
  • 查看容器占用状态

    1
    2
    docker stats
    docker stats --no-stream # 仅输出当前状态

容器操作

  • 进入 Docker 容器

    1
    2
    docker exec -it [CONTAINER] /bash
    docker exec -it [CONTAINER] /bin/sh
  • 与宿主机相互传输文件(夹)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # 从容器复制文件到宿主机
    docker cp CONTAINER:/path/in/container /path/on/host

    # 从宿主机复制文件到容器
    docker cp /path/on/host CONTAINER:/path/in/container

    # 从容器复制目录到宿主机
    docker cp CONTAINER:/path/in/container /path/on/host

    # 从宿主机复制目录到容器
    docker cp /path/on/host CONTAINER:/path/in/container

镜像相关

镜像导入/导出

  • 查看宿主机所有镜像

    1
    docker images
  • 使用save命令,通过镜像 id 导出镜像到宿主机当前文件夹下

    1
    docker save -o qinglong.tar whyour/qinglong:latest
  • 执行以下命令进行镜像导入

    1
    docker load < qinglong.tar

更改镜像储存位置

  • 默认情况下 Docker 容器的存放位置在/var/lib/docker目录下面

  • 可以通过下面命令查看具体位置

    1
    sudo docker info | grep "Docker Root Dir"
  • 解决默认存储容量不足的情况,最直接且最有效的方法就是挂载新的分区到该目录。但是在原有系统空间不变的情况下,所以采用软链接的方式,修改镜像和容器的存放路径达到同样的目的。

    1
    2
    3
    4
    5
    # 停掉Docker服务
    systemctl restart docker

    # 停掉Docker服务
    service docker stop
  • 然后移动整个/var/lib/docker目录到空间不较大的目的路径。这时候启动 Docker 时发现存储目录依旧是 /var/lib/docker 目录,但是实际上是存储在数据盘 /data/docker 上了

    1
    2
    3
    4
    5
    # 移动原有的内容
    mv /var/lib/docker /data/docker

    # 进行链接
    ln -sf /data/docker /var/lib/docker

网络相关

1
2
3
4
5
docker network ls  # 列出所有网络。
docker network create <network> # 创建一个新的网络。
docker network rm <network> # 删除指定的网络。
docker network connect <network> <container> # 连接容器到网络。
docker network disconnect <network> <container> # 断开容器与网络的连接。

Docker Compose

创建 Compose

  1. 编写 docker-compose.yml 文件

  2. 执行文件

1
2
docker compose up
docker compose up -d # 后台运行
由 Hexo 驱动 & 主题 Keep
本站由 提供部署服务