Linux学习笔记-Docker安装配置及使用教程

笔记内容转载自AcWing的Linux基础课讲义,课程链接:AcWing Linux基础课

一、Docker安装

Ubuntu 系统 Docker 官网安装教程:Docker Install Docs

本文安装 Docker 所使用的 OS 版本为:Ubuntu 22.04 (LTS)。依次执行以下命令安装 Docker:

(1)更新 apt

sudo apt-get update

(2)允许 apt 通过 HTTPS 使用存储库:

sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

(3)添加 Docker 的官方 GPG 密钥:

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

(4)设置 repository

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

(5)安装 Docker Engine,首先更新 apt

sudo apt-get update

(6)安装 Docker EnginecontainerdDocker Compose

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

(7)检查版本:

docker -v

二、Docker教程

(1)将当前用户添加到 docker 用户组
为了避免每次使用 docker 命令都需要加上 sudo 权限,可以将当前用户加入安装中自动创建的 docker 用户组(可以参考官方文档):

sudo usermod -aG docker $USER

执行完此操作后,需要退出服务器(即关闭系统),再重新登录回来,才可以省去 sudo 权限。

(2)镜像(images)
一个 Docker 中可以有很多镜像,镜像就相当于模板,每个镜像中又可以有很多容器。

用相同镜像生成的容器环境都一样,如果 Docker 安装在云服务器上,那么每个容器也就相当于是一个独立的云服务器。

迁移项目的时候即将容器先生成一个镜像,然后把镜像传到远程服务器上。

  • docker pull ubuntu:20.04docker pull ubuntu:latest:拉取一个镜像。
  • docker images:列出本地所有镜像。
  • docker save -o ubuntu_latest.tar ubuntu:latest:将镜像 ubuntu:latest 导出到本地文件 ubuntu_latest.tar 中,导出后记得给文件加上可读权限:chmod +r ubuntu_latest.tar
  • docker image rm ubuntu:latestdocker rmi ubuntu:latest:删除镜像 ubuntu:latest
  • docker [container] commit CONTAINER IMAGE_NAME:TAG:创建某个 container 的镜像,[] 表示 container 为可选字段。
  • docker load -i ubuntu_latest:将镜像 ubuntu:latest 从本地文件 ubuntu_latest.tar 中加载出来。

(3)容器(container)

  • docker [container] create -it ubuntu:latest:利用镜像 ubuntu:latest 创建一个容器。
  • docker ps -a:查看本地的所有容器,docker ps 为查看运行中的容器。
  • docker [container] start CONTAINER:启动容器,CONTAINER 可以是 ID 或 NAMES。
  • docker [container] stop CONTAINER:停止容器。
  • docker [container] restart CONTAINER:重启容器。
  • docker [contaienr] run -itd ubuntu:latest:创建并启动一个容器,可以加上参数 -p 20000:22 表示将容器的22端口映射到本地的20000端口,因为本地的22端口已经被占用了,且如果是在云服务器安装 Docker 还需要修改云服务器安全组配置,把20000端口放行。
  • docker [container] attach CONTAINER:进入容器。
    • 先按 Ctrl+p,再按 Ctrl+q 可以挂起容器,即退出但不关闭容器。
    • Ctrl+d 可以退出并关闭容器。
  • docker [container] exec CONTAINER COMMAND:在容器中执行 COMMAND 命令。
  • docker [container] rm CONTAINER:删除容器。
  • docker container prune:删除所有已停止的容器。
  • docker export -o xxx.tar CONTAINER:将容器导出到本地文件 xxx.tar 中。
  • docker import xxx.tar image_name:tag:将本地文件 xxx.tar 导入成镜像,并将镜像命名为 image_name:tag
  • docker export/importdocker save/load 的区别:
    • export/import 会丢弃历史记录和元数据信息,仅保存容器当时的快照状态。
    • save/load 会保存完整记录,体积更大。
  • docker top CONTAINER:查看某个容器内的所有进程。
  • docker stats:查看所有容器的统计信息,包括 CPU、内存、存储、网络等信息。
  • docker cp xxx CONTAINER:xxxdocker cp CONTAINER:xxx xxx:在本地和容器间复制文件。
  • docker rename NAMES1 NAMES2:将 NAMES1 容器重命名为 NAMES2
  • docker update CONTAINER --memory 500MB:修改容器限制,更多修改内容可以在官网查找。
  • 进入容器后输入 passwd 可以设置 root 密码。

(4)云服务器配置示例
首先在 AC Terminal 中操作:

scp /var/lib/acwing/docker/images/docker_lesson_1_0.tar server_name:  # 将镜像上传到自己租的云端服务器
ssh server_name  # 登录自己的云端服务器

docker load -i docker_lesson_1_0.tar  # 将镜像加载到本地
docker run -p 20000:22 --name my_docker_server -itd docker_lesson:1.0  # 创建并运行docker_lesson:1.0镜像的容器

docker attach my_docker_server  # 进入创建的docker容器
passwd  # 设置root密码

然后去云平台控制台中修改安全组配置,放行端口:20000。

返回 AC Terminal,即可通过 SSH 登录自己的 Docker 容器:

ssh [email protected] -p 20000  # 将xxx.xxx.xxx.xxx替换成自己租的服务器的IP地址

创建 acs 用户:

adduser acs  # 创建用户acs
usermod -aG sudo acs  # 给用户acs分配sudo权限

最后可以配置 Docker 容器的别名和免密登录。

Tips:如果 apt-get 下载软件速度较慢,可以参考清华大学开源软件镜像站中的内容,修改软件源。

猜你喜欢

转载自blog.csdn.net/m0_51755720/article/details/128000010