Docker容器快速安装及快速入门

基本介绍

  1. 开源的应用容器引擎,基于Go语言开发
  2. 容器是完全使用沙箱机制的,容器开销极低
  3. Docker就是容器化技术的代名词
  4. Docker也具备一定的虚拟化职能
  5. 提供最标准的应用打包流程

基本架构

docker为CS架构

C指的是客户端

S是服务端

客户端将命令行内的内容发送给服务端,服务端执行命令

名词介绍

docker buIid docker build 是 Docker 中的一个命令,用于构建镜像。

docker pull 下载镜像

docker run 创建容器并运行容器

仓库(repository):Docker hub 存放在镜像的地方,国内可以配置镜像加速下载

镜像(image):是一个模块,可基于此模板运行出多个容器

容器(container):通过镜像创建的独立运行的一个或者一组应用

Docker: 是一个容器引擎,用于管理容器的生命周期
容器: 用于运行一个软件的容器,这个容器里面准备了软件运行所需要的一系列依赖
镜像:容器的安装包,容器中需要哪些内容,以及对应的配置信息全部打包在这里面,要运行一个容器,必须要现有一个镜像
仓库(可当作软件商店):用于存放各种镜像

安装方式

安装时要区分企业版和社区版

企业版为:EE 社区版为: CE 社区版和企业版区别在于少很多插件相对于来讲简单许多

官方网址 :docker.com 官方文档:docs.docker.com

好的,以下是在不同的 Linux 环境下安装 Docker 的命令和解释。使用 Typora 编辑器打开此文本可以得到更好的阅读体验。

CentOS

CentOS 是一种基于 Red Hat Enterprise Linux (RHEL) 源代码的企业级 Linux 发行版。在 CentOS 上安装 Docker 可以通过以下步骤完成:

  1. 首先,卸载旧版本的 Docker(如果有的话),并更新系统软件包:

    sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine
    
    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    
    sudo yum update -y
    
  2. 安装 Docker CE:

    sudo yum install docker-ce docker-ce-cli containerd.io
    
    sudo systemctl start docker
    
  3. 验证 Docker 是否已正确安装:

    sudo docker run hello-world
    

Ubuntu

Ubuntu 是一种开源的 Debian 操作系统分支,基于 Debian 开发,并拥有自己的软件包格式和发布计划。在 Ubuntu 上安装 Docker 可以通过以下步骤完成:

  1. 首先,卸载旧版本的 Docker(如果有的话),并更新系统软件包:

    sudo apt-get remove docker docker-engine docker.io containerd runc
    
    sudo apt-get update
    
  2. 安装 Docker CE:

    sudo apt-get install -y \
        apt-transport-https \
        ca-certificates \
        curl \
        gnupg \
        lsb-release
    
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    
    echo \
      "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
      $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
    sudo apt-get update
    sudo apt-get install -y docker-ce docker-ce-cli containerd.io
    
    sudo systemctl start docker
    
  3. 验证 Docker 是否已正确安装:

    sudo docker run hello-world
    

Debian

Debian 是一种普及度非常高的 Linux 发行版,以其稳定性和安全性著称。在 Debian 上安装 Docker 可以通过以下步骤完成:

  1. 首先,卸载旧版本的 Docker(如果有的话),并更新系统软件包:

    sudo apt-get remove docker docker-engine docker.io containerd runc
    
    sudo apt-get update
    
  2. 安装 Docker CE:

    sudo apt-get install -y \
        apt-transport-https \
        ca-certificates \
        curl \
        gnupg \
        lsb-release
    
    curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    
    echo \
      "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
      $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
    sudo apt-get update
    sudo apt-get install -y docker-ce docker-ce-cli containerd.io
    
    sudo systemctl start docker
    
  3. 验证 Docker 是否已正确安装:

    sudo docker run hello-world
    

Fedora

Fedora 是一种面向桌面和服务器应用的基于 Linux 的操作系统,由 Red Hat 公司赞助支持。在 Fedora 上安装 Docker 可以通过以下步骤完成:

  1. 首先,卸载旧版本的 Docker(如果有的话),并更新系统软件包:

    sudo dnf remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine
    
    sudo dnf -y install dnf-plugins-core
    
  2. 设置 Docker CE 的镜像仓库:

    sudo dnf config-manager \
        --add-repo \
        https://download.docker.com/linux/fedora/docker-ce.repo
    
  3. 安装 Docker CE:

    sudo dnf install docker-ce docker-ce-cli containerd.io
    
    sudo systemctl start docker
    
  4. 验证 Docker 是否已正确安装:

    sudo docker run hello-world
    

基本命令以及解释

镜像操作

搜索镜像

使用 docker search 命令搜索 Docker Hub 上的镜像。

docker search [OPTIONS] TERM
  • OPTIONS:可选参数,具体介绍见下表。
  • TERM:指定要搜索的镜像名称。
参数说明
–filter根据条件过滤结果
–format指定输出格式
–limit最多返回多少条搜索结果
–no-trunc不截断输出

例如:

docker search -f stars=3 ubuntu

下载镜像

使用 docker pull 命令下载指定的镜像。

docker pull [OPTIONS] NAME[:TAG|@DIGEST]
  • OPTIONS:可选参数,具体介绍见下表。
  • NAME:指定要下载的镜像名称。
  • TAG:可选参数,指定要下载的镜像的标签,默认为 latest
  • DIGEST:可选参数,指定要下载的镜像的摘要值。
参数说明
-a/–all-tags下载指定镜像的全部标签
–disable-content-trust禁用镜像校验,默认启用

例如:

docker pull ubuntu:18.04

查看本地镜像

使用 docker images 命令查看本地已有的镜像。

docker images [OPTIONS] [REPOSITORY[:TAG]]
  • OPTIONS:可选参数,具体介绍见下表。
  • REPOSITORY:可选参数,指定要查看的镜像名称。
  • TAG:可选参数,指定要查看的镜像的标签。
参数说明
-a/–all列出所有镜像,包括中间层镜像
–digests显示镜像摘要信息
–format指定输出格式
–no-trunc不截断输出
–quiet只显示镜像 ID 和标签,不显示额外信息

例如:

docker images -a ubuntu

删除本地镜像

使用 docker rmi 命令删除本地镜像。

docker rmi [OPTIONS] IMAGE [IMAGE...]
  • OPTIONS:可选参数,具体介绍见下表。
  • IMAGE:指定要删除的镜像,可以同时删除多个镜像。
参数说明
-f/–force强制删除
–no-prune不删除被依赖的镜像

例如:

docker rmi -f ubuntu:18.04

容器操作

运行容器

使用 docker run 命令运行一个容器。

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  • OPTIONS:可选参数,具体介绍见下表。
  • IMAGE:指定要使用的镜像。
  • COMMAND:可选参数,指定在容器内执行的第一条命令。
  • ARG:可选参数,指定命令的参数。
参数说明
-d/–detach在后台模式运行 Docker 容器
-i/–interactive以交互模式运行 Docker 容器
-t/–tty分配一个虚拟终端
-p/–publish容器端口号映射到主机端口号
-P/–publish-all将所有容器端口号映射到主机端口号
-v/–volume给容器添加数据卷
–name指定容器名称
–rm容器退出时自动删除
–restart容器重启策略

例如:

docker run -it --name myubuntu ubuntu /bin/bash

列出所有运行中的容器

使用 docker ps 命令列出所有正在运行中的容器。

docker ps [OPTIONS]
  • OPTIONS:可选参数,具体介绍见下表。
参数说明
-a/–all列出所有运行过的容器
-f/–filter根据条件过滤结果
-n/–last显示最后创建的 N 个容器
-q/–quiet只显示容器 ID

例如:

docker ps -a

列出所有容器

使用 docker ps -a 命令列出所有容器,无论其是否正在运行。

docker ps -a

进入容器

使用 docker exec 命令进入正在运行的容器。

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
  • OPTIONS:可选参数,具体介绍见下表。
  • CONTAINER:指定要进入的容器。
  • COMMAND:指定在容器内执行的命令。
  • ARG:命令的参数。
参数说明
-d/–detach分离模式,即在后台运行命令
-i/–interactive以交互模式运行 Docker 容器
-t/–tty分配一个虚拟终端

例如:

docker exec -it myubuntu /bin/bash

停止容器

使用 docker stop 命令停止正在运行的容器。

docker stop CONTAINER [CONTAINER...]
  • CONTAINER:指定要停止的容器,可以同时停止多个容器。

例如:

docker stop myubuntu

启动容器

使用 docker start 命令启动已停止的容器。

docker start [OPTIONS] CONTAINER [CONTAINER...]
  • OPTIONS:可选参数,具体介绍见下表。
  • CONTAINER:指定要启动的容器,可以同时启动多个容器。
参数说明
-a/–attach附着模式,即在控制台输出容器的日志信息

例如:

docker start myubuntu

删除容器

使用 docker rm 命令删除已经停止的容器。

docker rm [OPTIONS] CONTAINER [CONTAINER...]
  • OPTIONS:可选参数,具体介绍见下表。
  • CONTAINER:指定要删除的容器,可以同时删除多个容器。
参数说明
-f/–force强制删除
-v/–volumes同时删除容器关联的数据卷

例如:

docker rm myubuntu

查看容器日志

使用 docker logs 命令查看容器的日志。

docker logs [OPTIONS] CONTAINER
  • OPTIONS:可选参数,具体介绍见下表。
  • CONTAINER:指定要查看日志的容器。
参数说明
-f/–follow随着容器的输出持续打印日志信息
–tail从日志末尾开始显示指定条数的日志,默认为全部

例如:

docker logs -f myubuntu

其他操作

端口映射

使用 -p 参数将主机的端口映射到容器的端口上。

docker run [OPTIONS] -p HOST_PORT:CONTAINER_PORT IMAGE
  • OPTIONS:可选参数,具体介绍见上表。
  • HOST_PORT:主机端口号。
  • CONTAINER_PORT:容器端口号。
  • IMAGE:指定要使用的镜像。

例如:

docker run -d -p 8080:80 nginx

指定容器名

使用 --name 参数指定容器的名称。

docker run [OPTIONS] --name CONTAINER_NAME IMAGE
  • OPTIONS:可选参数,具体介绍见上表。
  • CONTAINER_NAME:指定容器的名称。
  • IMAGE:指定要使用的镜像。

例如:

docker run --name mynginx nginx

退出时删除容器

使用 --rm 参数在容器退出时自动删除该容器。

docker run [OPTIONS] --rm IMAGE [COMMAND] [ARG...]
  • OPTIONS:可选参数,具体介绍见上表。
  • IMAGE:指定要使用的镜像。
  • COMMAND:可选参数,指定在容器内执行的命令。
  • ARG:命令的参数。

例如:

docker run --rm ubuntu /bin/bash

容器重启策略

使用 --restart 参数指定容器的重启策略。

docker run [OPTIONS] --restart=POLICY IMAGE
  • OPTIONS:可选参数,具体介绍见上表。

  • POLICY:指定容器的重启策略。可选值包括:

    • no:容器退出时不重启;
    • on-failure:容器非正常退出(退出状态码非 0)时重启;
    • unless-stopped:容器退出时总是重启。

例如:

docker run -d --restart always nginx

当然,下面是关于容器环境变量及参数的常用命令及其参数的详细解释。

容器环境变量

设置容器环境变量

使用 -e 参数设置容器的环境变量。

docker run [OPTIONS] -e key=value IMAGE
  • OPTIONS:可选参数,具体介绍见上表。
  • key:环境变量名称。
  • value:环境变量的值。
  • IMAGE:指定要使用的镜像。

例如:

docker run -e MYSQL_ROOT_PASSWORD=123456 mysql

查看容器环境变量

使用 docker inspect 命令查看容器的详细信息,其中包括容器的环境变量。

docker inspect [OPTIONS] CONTAINER
  • OPTIONS:可选参数,具体介绍见上表。
  • CONTAINER:指定要查看信息的容器。

例如:

docker inspect mymysql | grep Environment

容器参数

使用容器参数

使用 -- 参数将命令行参数传递给容器内部运行的程序。

docker run [OPTIONS] IMAGE [COMMAND] -- [ARG...]
  • OPTIONS:可选参数,具体介绍见上表。
  • IMAGE:指定要使用的镜像。
  • COMMAND:可选参数,指定在容器内执行的第一个命令。
  • ARG:命令的参数。

例如:

docker run --rm -it ubuntu /bin/bash --version

这个命令会启动一个新的 Ubuntu 容器,并在容器内运行 /bin/bash 命令,同时将 --version 参数传递到 /bin/bash 命令中去。

给容器指定参数

使用 docker run 命令的最后一个参数可以是容器要执行的命令及其参数。

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  • OPTIONS:可选参数,具体介绍见上表。
  • IMAGE:指定要使用的镜像。
  • COMMAND:可选参数,指定容器要执行的命令。
  • ARG:命令的参数。

例如:

docker run --rm -it ubuntu /bin/bash --version

这个命令会启动一个新的 Ubuntu 容器,并在容器内执行 /bin/bash --version 命令。

限制容器内存大小

docker run -d -m value --cpus 1 IMAGE 
  • -m:限制内存大小。
  • value:最小单位为kb,最大单位为G
  • IMAGE:指定要使用的镜像。
  • --cpus:指定使用多少个CPU。

数据卷

Docker 中的数据卷是用来存储容器数据的一种机制,可以将主机或其他容器中的目录或文件挂载到容器内部。

主机挂载类型(Bind mounts)

使用方法

$ docker run -v HOST_PATH:CONTAINER_PATH IMAGE_NAME

其中:

  • HOST_PATH:主机上的目录或文件路径。
  • CONTAINER_PATH:容器内部的目录或文件路径。
  • IMAGE_NAME:运行容器的镜像名称。

示例

将主机上的 /data 目录挂载到容器内部的 /app/data 目录:

$ docker run -v /data:/app/data nginx

匿名挂载类型(Anonymous volumes)

将一个匿名的数据卷挂载到容器内部。

使用方法

$ docker run -v CONTAINER_PATH IMAGE_NAME

其中:

  • CONTAINER_PATH:容器内部的目录或文件路径。
  • IMAGE_NAME:运行容器的镜像名称。

示例

将一个匿名的数据卷挂载到容器内部的 /app/data 目录:

$ docker run -v /app/data nginx

具名挂载类型(Named volumes)

将一个具名的数据卷挂载到容器内部。

使用方法

$ docker volume create VOLUME_NAME
$ docker run -v VOLUME_NAME:CONTAINER_PATH IMAGE_NAME

其中:

  • VOLUME_NAME:数据卷的名称。
  • CONTAINER_PATH:容器内部的目录或文件路径。
  • IMAGE_NAME:运行容器的镜像名称。

示例

创建一个名为 mydata 的数据卷,并将其挂载到容器内部的 /app/data 目录:

$ docker volume create mydata
$ docker run -v mydata:/app/data nginx

以上就是 Docker 数据卷的介绍和使用方法,通过使用数据卷,我们可以方便地实现 Docker 容器中的数据持久化、共享和备份等需求,并提高应用程序的可靠性和可维护性。

很抱歉我的回答没有表达清楚三种类型数据卷的利害关系和使用场景,下面进行补充说明。

主机挂载类型(Bind mounts)

优点:

  • 可以将主机上的文件或目录直接挂载到容器内部。
  • 不需要事先创建数据卷,配置灵活。

缺点:

  • 降低了容器的可移植性:由于容器依赖于主机文件系统的路径,这种方式在不同主机上可能会出现问题。

应用场景:

  • 开发和测试环境中经常使用,可以通过挂载宿主机上的代码和配置文件到容器内部,加快开发和测试的效率。

匿名挂载类型(Anonymous volumes)

优点:

  • 自动在 Docker 主机上创建一个匿名的数据卷,并将其挂载到容器内部。
  • 不需要手动在主机上创建数据卷,操作简单。

缺点:

  • 数据卷的生命周期与容器绑定,容器删除后数据卷也会随之丢失。
  • 在创建的时候不方便管理和重用。

应用场景:

  • 适合一些临时的数据存储,例如日志文件和缓存等。

具名挂载类型(Named volumes)

优点:

  • 可以提高容器的可移植性,数据卷名称与容器解耦,可以在多个容器之间重用。
  • 方便管理和维护,可以通过 Docker CLI 进行管理操作。
  • 支持自定义配置,例如读写权限和存储驱动等。

缺点:

  • 需要手动创建数据卷,操作相对麻烦。

应用场景:

  • 适合生产环境中使用,可以方便地管理数据卷的生命周期和配置信息。

Docker的 volume 命令用于在容器和主机之间创建一个数据卷,用于更好地管理容器中的数据。下面是常用的一些参数及其用法:

创建数据卷:

使用 docker volume create 命令可以创建一个新的数据卷,具体命令格式如下:

docker volume create [OPTIONS] [VOLUME]

其中,OPTIONS 参数表示选项,例如 --driver 等,VOLUME 参数表示数据卷的名称。

列出数据卷:

使用 docker volume ls 命令可以列出所有的数据卷,具体命令格式如下:

docker volume ls [OPTIONS]

其中,OPTIONS 参数表示选项,例如 -q 可以只显示数据卷的名称。

删除数据卷:

使用 docker volume rm 命令可以删除指定的数据卷,具体命令格式如下:

docker volume rm [OPTIONS] VOLUME [VOLUME...]

其中,OPTIONS 参数表示选项,例如 -f 可以强制删除数据卷,VOLUME 参数表示要删除的数据卷的名称。

查看数据卷信息:

使用 docker volume inspect 命令可以查看指定的数据卷的详细信息,具体命令格式如下:

docker volume inspect [OPTIONS] VOLUME [VOLUME...]

其中,OPTIONS 参数表示选项,例如 -f 可以指定返回值的格式,VOLUME 参数表示要查看信息的数据卷的名称。

使用数据卷:

使用 docker run 命令可以在容器中挂载指定的数据卷,具体命令格式如下:

docker run [OPTIONS] -v VOLUME:CONTAINER_PATH IMAGE [COMMAND] [ARG...]

其中,OPTIONS 参数表示选项,例如 -d 可以后台运行容器,-p 可以指定端口映射等。VOLUME:CONTAINER_PATH 表示将数据卷挂载到容器中,IMAGE 参数表示容器所使用的镜像,COMMANDARG 表示容器启动时执行的命令和参数。

以上就是一些常用的 docker volume 命令及其用法,具体可以根据情况进行选择和使用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值