Docker使用教程及常用命令

Docker是一个开源的应用容器引擎,允许开发者将应用以及依赖打包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows上。它非常适用于持续集成与持续交付(CI/CD)。

1. 安装Docker

首先,你需要在你的服务器上安装Docker。根据你的操作系统,可以选择适合的安装方法。

(1)对于Ubuntu:

sudo apt-get update
sudo apt-get install docker.io

启动Docker并设置为开机启动:

sudo systemctl start docker
sudo systemctl enable docker

(2)对于Centos:

  1. 安装所需的包

首先,确保你已经安装了必要的软件包。

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 添加Docker存储库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  1. 安装Docker CE
sudo yum install docker-ce
  1. 启动Docker并使其开机启动
sudo systemctl start docker
sudo systemctl enable docker
  1. 验证Docker是否正确安装

运行一个简单的Docker Hello World镜像来验证安装是否成功:

docker run hello-world

如果你看到Hello World的消息,那么Docker已经成功安装并正在运行。

注意: 安全最佳实践建议您不要使用root用户来运行Docker容器。您可以通过创建一个docker用户组并将用户添加到该组来避免使用root权限。此外,还建议使用Docker提供的安全增强功能,如AppArmor、SELinux等来提高Docker容器的安全性。

参考教程:Centos7下安装Docker(详细安装教程)通俗易懂-腾讯云开发者社区-腾讯云 (tencent.com)

2. Docker基本命令

  1. 查看Docker版本

    docker --version
    
  2. 运行一个Docker容器

    如果你想要运行一个简单的nginx服务器,你可以执行以下命令:

    docker run -d -p 80:80 nginx
    
  3. 查看正在运行的Docker容器

    docker ps
    

    若要查看所有容器(包括停止的),可以使用:

    docker ps -a
    
  4. 停止容器

    docker stop [容器ID或容器名]
    
  5. 移除容器

    docker rm [容器ID或容器名]
    
  6. 查看本地的Docker镜像

    docker images
    
  7. 移除Docker镜像

    docker rmi [镜像ID或名称]
    
  8. 构建Docker镜像

    在Dockerfile所在的目录中,执行:

    docker build -t [镜像名]:[标签] .
    
  9. Docker日志

    查看容器的输出:

    docker logs [容器ID或容器名]
    

3. Docker Compose

Docker Compose介绍

Docker Compose是一个用于在单一主机上定义和运行多容器应用的工具。通过一个简单的YAML文件,你可以定义应用的服务、网络和卷,然后使用一个命令来启动整个堆栈。

(1)Docker Compose的YAML模板格式

以下是一个简单的Docker Compose模板示例,它定义了一个web服务和一个数据库服务:

version: '3'  # 使用的Compose文件版本

services:  # 定义的服务列表
  web:  # 服务名
    image: nginx:latest  # 使用的Docker镜像
    ports:
      - "5000:80"  # 端口映射,格式为"宿主机端口:容器端口"

  db:
    image: postgres:latest
    environment:  # 设置环境变量
      POSTGRES_PASSWORD: example

networks:  # 可选,定义网络
  default:
    external:
      name: my-network

volumes:  # 可选,定义卷
  db-data:

当你有一个名为docker-compose.yml的文件时,你可以运行docker-compose命令来控制定义的服务。

(2)Docker Compose常用命令

  1. 启动定义在Compose文件中的服务

    docker-compose up
    

    docker-compose up 命令需要在 docker-compose.yml 文件所在的目录下运行,除非你通过 -f--file 参数指定了一个不同的路径和文件名。

    当你在终端或命令行界面中运行 docker-compose 命令,它默认会在当前目录下寻找名为 docker-compose.ymldocker-compose.yaml 的文件。

    例如,如果你的 docker-compose.yml 文件位于 /path/to/your-project,你应该首先更改到那个目录:

    cd /path/to/your-project
    docker-compose up
    

    但是,如果你在另一个目录,并且不想改变当前目录,你可以使用 -f 参数指定 docker-compose.yml 文件的路径:

    docker-compose -f /path/to/your-project/docker-compose.yml up
    

    如果你有多个Compose文件,并希望按顺序应用它们,你可以多次使用 -f 参数。例如:

    docker-compose -f docker-compose.base.yml -f docker-compose.override.yml up
    

    这会首先加载 docker-compose.base.yml 文件,然后将 docker-compose.override.yml 中的任何内容合并或覆盖它。

  2. 在后台模式启动服务

    docker-compose up -d
    
  3. 停止服务

    docker-compose stop
    
  4. 停止并移除容器、网络、卷和镜像

    docker-compose down
    
  5. 查看服务的输出

    docker-compose logs [服务名]
    
  6. 构建或重建服务

    如果你有一个Dockerfile并在docker-compose.yml中指定了build指令,你可以使用以下命令来构建服务的镜像:

    docker-compose build
    
  7. 查看运行中的容器的状态

    docker-compose ps
    
  8. 执行一个命令在特定服务的容器中

    docker-compose exec [服务名] [命令]
    

总结

Docker Compose为开发者提供了一种方便、统一的方式来定义、管理和运行多容器应用。对于复杂的应用,使用Docker Compose可以大大简化部署和管理的过程。

posted @ 2023-08-08 13:18  孤飞  阅读(400)  评论(2编辑  收藏  举报