ubuntu使用Docker笔记

作者 : admin 本文共4689个字,预计阅读时间需要12分钟 发布时间: 2024-06-9 共2人阅读

一、参考资料

  • 1、B站视频
    尚硅谷Docker实战教程

  • 2、有心人整理的笔记
    Docker笔记(周阳版)

  • 3、菜鸟教程
    Docker 教程

以下是本人的折腾实践。

二、Docker的安装

  • 2.1、使用清华源安装docker,清华源官方教程。
    本人是在ubuntu20.04下安装的。
    • 1、如果你过去安装过 docker,先删掉:
    for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
    
    • 2、安装依赖:
    sudo apt-get update
    sudo apt-get install ca-certificates curl gnupg
    
    • 3、信任 Docker 的 GPG 公钥并添加仓库:
    sudo install -m 0755 -d /etc/apt/keyrings
    curl -fsSL http://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    sudo chmod a+r /etc/apt/keyrings/docker.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] http://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
    • 4、开始安装
    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    
  • 2.2、手动安装Docker(适用于无法联网的电脑)
    • 1、打开清华大学docker-ce开源镜像。
    • 2、选择操作系统。根据自己的系统选择,我这里选linux。
    • 3、选择ubuntu版本,进入dists/focal/pool/stable/amd64/目录。
    • 4、下载deb文件: Docker Engine, CLI, containerd, Docker Compose:
      • containerd.io_{version}_{arch}.deb
      • docker-ce_{version}_{arch}.deb
      • docker-ce-cli_{version}_{arch}.deb
      • docker-buildx-plugin_{version}_{arch}.deb
      • docker-compose-plugin_{version}_{arch}.deb
    • 5、安装deb
    sudo dpkg -i ./containerd.io_{version}_{arch}.deb \
    ./docker-ce_{version}_{arch}.deb \
    ./docker-ce-cli_{version}_{arch}.deb \
    ./docker-buildx-plugin_{version}_{arch}.deb \
    ./docker-compose-plugin_{version}_{arch}.deb
    
  • 2.3、如果你不想每次使用docker时都输入sudo,你可以将你的用户添加到docker组:
    sudo usermod -aG docker $USER
    

    然后,你需要注销并重新登录,或者重新启动系统,以便更改生效。之后,你就可以直接使用Docker命令,不需要再加sudo。

三、Docker Hub镜像加速

如果执行docker pull时,无法拉取到镜像,可以通过修改Docker Hub的源为国内源来进行加速。

  • 3.1、临时使用指定的源拉取镜像,可使用:

    docker pull 镜像名称 -–registry-mirror=国内镜像源地址
    
  • 3.2、永久使用指定的源

    • 1、需新增或编辑 Docker 的服务文件:
    sudo vim /etc/docker/daemon.json
    
    • 2、在该文件中添加以下内容:
    {
    	"registry-mirrors": ["http://docker.mirrors.ustc.edu.cn"]
    }
    
  • 3.3、重启 Docker 服务以应用更改:

    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
  • 3.4、附上国内Docker Hub 镜像加速器列表:

    镜像加速器镜像加速器地址是否专属加速器是否其它加速
    Docker 中国官方镜像http://registry.docker-cn.comDocker Hub
    DaoCloud 镜像站http://f1361db2.m.daocloud.io可登录,系统分配Docker Hub
    Azure 中国镜像http://dockerhub.azk8s.cnDocker Hub、GCR、Quay
    科大镜像站http://docker.mirrors.ustc.edu.cnDocker Hub、GCR、Quay
    阿里云http://.mirror.aliyuncs.com需登录,系统分配Docker Hub
    七牛云http://reg-mirror.qiniu.comDocker Hub、GCR、Quay
    网易云http://hub-mirror.c.163.comDocker Hub
    腾讯云http://mirror.ccs.tencentyun.comDocker Hub
  • 3.5、检查加速器是否生效

    docker info
    

    如果从结果中看到了如下内容,说明配置成功:

    Registry Mirrors:
     [...]
    http://registry.docker-cn.com/
    
  • 3.6、Docker Hub 镜像测速
    使用镜像前后,可使用time统计所花费的总时间。测速前先移除本地的镜像,如测试拉取ubuntu20.04的镜像:

    time docker pull ubuntu:20.04	
    

四、Docker的卸载

  • 4.1、卸载 Docker Engine, CLI, containerd, and Docker Compose packages:
    sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
    
  • 4.2、删除残留的配置文件
    sudo rm -rf /var/lib/docker
    sudo rm -rf /var/lib/containerd
    

五、Docker的简单使用

	# 拉取ubuntu20.04镜像:
	docker pull ubuntu:20.04

	# 以ubuntu20.04镜像运行一个容器:
	# 参数说明:
	# -i: 以交互式操作运行; -t: 以终端方式运行; -d: 后台运行;
	# -p 主机端口:容器端口 (建立主机和容器之间的端口映射);
	# --name: name (指定容器的名字);
	docker run -itd -p 15901:5901 --name ubuntu-test ubuntu:20.04 /bin/bash

	# 进入后台运行的容器
	docker exec -it  ubuntu-test /bin/bash

六、Docker常用命令

  • 6.1、帮助、启动类命令

    • 1、启动docker
    # 启动dokcer
    sudo systemctl start docker
    
    # 停止docker
    sudo systemctl stop docker
    
    # 查看docker状态
    sudo systemctl status docker
    
    # 开机启动
    sudo systemctl enable docker
    
    • 2、查看docker信息
    # 查看docker概要信息
    docker info
    
    # 查看docker总体帮助文档
    docker --help
    
    # 查看具体命令帮助
    docker 具体命令 --help
    
  • 6.2、镜像命令

    • 6.2.1、列出本地主机上的镜像
    # 查看已有镜像
    docker images
    
    # 列出镜像所有信息
    docker images -a
    
    # 只列出镜像id
    docker images -q
    
    • 6.2.2、从docker-hub中查找指定的镜像
    docker search 镜像名
    
    • 6.2.3、从docker-hub拉取镜像
    docker pull 镜像名[:TAG]
    
    • 6.2.4、查看镜像/容器/数据卷所占的空间
    docker system df
    
    • 6.2.5、删除镜像
    docker rmi 镜像名字/镜像id
    
    # 删除多个
    docker rmi -f img1:tag img2:tag
    
    # 删除全部
    docker rmi -f $(docker images -qa)
    
    • 6.2.6、提交容器副本使其成为一个新的镜像
    docker commit -m "提交描述信息" -a "作者" 容器id 要创建的img:[tag]
    
  • 6.3、容器命令

    • 6.3.1、启动并运行一个容器
    docker run [options] IMAGE [command] [args...]
    

    options说明:
    --name 容器名: 给容器指定一个名字
    -d: 后台运行容器并返回容器id,也即启动守护式容器(后台运行)
    -i: 以交互式模式运行容器,通常与-t同时使用
    -t: 为容器重新分配一个伪输入终端,通常与-i同时使用(也即启动交互式容器,前台有伪终端,等待交互)
    -P: 随机端口映射
    -p 主机端口:容器端口: 指定端口映射

    • 6.3.2、列出当前所有运行的容器
    docker ps [options]
    

    options说明:
    -a: 列出当前所有正在运行的容器 + 历史上运行过的容器
    -l: 显示最近创建的容器
    -n: 显示最近n个创建的容器
    -q: 静默模式,只显示当前运行的容器id

    • 6.3.3、退出容器
      两种退出方式:

    • run进入容器,exit退出,容器停止

    • run进入容器,ctrl+p+q退出,容器不停止

    • 6.3.4、启动已停止运行的容器

    docker start 容器id/容器名
    
    • 6.3.5、重启容器
    docker restart 容器id/容器名
    
    • 6.3.6、停止容器
    docker stop 容器id/容器名
    
    • 6.3.7、强制停止容器
    docker kill 容器id/容器名
    
    • 6.3.8、删除已停止的容器
    docker rm 容器id/容器名
    

    强制删除(不管是否在运行)

    docker rm -f 容器id/容器名
    
    • 6.3.9、启动守护式容器(后台服务器)
    docker run -d 容器id/容器名
    
    • 6.3.10、查看容器日志
    docker logs 容器id/容器名
    
    • 6.3.11、查看容器内运行的进程
    docker top 容器id/容器名
    
    • 6.3.12、查看容器内部细节
    docker inspect 容器id/容器名
    
    • 6.3.13、进入正在运行的容器并以命令行交互
    docker exec -it 容器id/容器名 shell
    

    docker exec退出后,不会导致容器停止。

    重新进入容器

    docker attach 容器id/容器名
    

    退出后,会导致容器停止。

    • 6.3.14、容器和主机之间拷贝文件
    # 从容器拷贝到主机
    docker cp 容器id:容器内路径 目的主机路径
    
    # 从主机拷贝到容器
    docker cp 主机路径 容器id:容器内路径
    
    • 6.3.15、导出容器
    docker export 容器id/容器名 > xxx.tar
    
    • 6.3.16、导入容器
    cat xxx.tar | docker import - 镜像仓库路径/镜像名:镜像版本号
    
本站无任何商业行为
个人在线分享 » ubuntu使用Docker笔记
E-->