欢迎阅读这篇博客!本篇文章将详细讲述如何安装和使用Docker以及Docker Compose,以及一些常用的Docker指令及其意义。

安装Docker

使用官方安装脚本自动安装(仅适用于公网环境)

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

手动安装

首先,我们需要安装Docker。以下是在Ubuntu系统中安装Docker的步骤:

  1. 更新系统包
    sudo apt-get update
    
  2. 安装必要依赖
    sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
    
  3. 添加Docker官方GPG key
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
  4. 添加Docker的APT源
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    
  5. 安装Docker CE
    sudo apt-get install docker-ce
    
  6. 检查是否安装成功
    sudo docker run hello-world
    

如果看到"Hello from Docker!"的消息,那么恭喜你,Docker已经成功安装在你的机器上了。

安装Docker Compose

Docker Compose V2是Docker的下一代工具,用于定义和运行多容器Docker应用程序。从Docker 20.10开始,Docker Compose已被纳入Docker CLI,不再需要单独安装。 但如果你需要单独安装Docker Compose,可以遵循以下步骤:

sudo apt install docker-compose-plugin

检查安装是否成功

docker-compose --version

如果看到Docker Compose的版本号,那么恭喜你,Docker Compose已经成功安装在你的机器上了。

安装校验

root@iZuf6594e6gmiic5yjtu12Z:~# docker version
Client: Docker Engine - Community
 Version:           24.0.6
 API version:       1.43
 Go version:        go1.20.7
 Git commit:        ed223bc
 Built:             Mon Sep  4 12:32:12 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          24.0.6
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.7
  Git commit:       1a79695
  Built:            Mon Sep  4 12:32:12 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.22
  GitCommit:        8165feabfdfe38c65b599c4993d227328c231fca
 runc:
  Version:          1.1.8
  GitCommit:        v1.1.8-0-g82f18fe
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

常用Docker指令

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  • -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项

  • -d: 后台运行容器,并返回容器ID

  • -i: 以交互模式运行容器,通常与 -t 同时使用

  • -P: 随机端口映射,容器内部端口随机映射到主机的端口

  • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口

  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用

  • --name="nginx-lb": 为容器指定一个名称

  • --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致

  • --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致

  • -h "mars": 指定容器的hostname

  • -e username="ritchie": 设置环境变量

  • --env-file=[]: 从指定文件读入环境变量

  • --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行

  • -m :设置容器使用内存最大值

  • --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型

  • --link=[]: 添加链接到另一个容器

  • --expose=[]: 开放一个端口或一组端口

  • --volume , -v: 挂载本地卷

常用Docker Compose指令

  • docker-compose up -d: 构建建启动容器
  • docker-compose down 删除所有容器,镜像
  • docker-compose ps 显示所有容器
  • docker-compose restart 重新启动容器
  • docker-compose run --no-deps --rm php-fpm php -v 在php-fpm中不启动关联容器,并容器执行php -v 执行完成后删除容器
  • docker-compose build 构建镜像
  • docker-compose build --no-cache 不带缓存的构建
  • docker-compose logs 查看的日志
  • docker-compose logs -f 验证(docker-compose.yml)文件配置,当配置正确时,不输出任何内容,当文件配置错误,输出错误信息
  • docker-compose pause 暂停容器
  • docker-compose unpause 恢复容器
  • docker-compose rm 删除容器(删除前必须关闭容器)
  • docker-compose stop 停止容器
  • docker-compose start 启动容器