Docker 常用命令详解

目录

  1. Docker 简介
  2. 安装 Docker
  3. Docker 基本命令
  4. Docker 高级命令
  5. 实战案例
  6. 总结

Docker 简介

Docker 是一个开源的容器化平台,提供了简化应用程序开发、部署和运行的工具。Docker 容器是一种轻量级、可移植、自给自足的软件包,包含了应用程序及其所有依赖项。通过使用 Docker,开发人员可以确保应用程序在不同环境中具有一致的行为。

安装 Docker

在不同操作系统上安装 Docker 的方法略有不同。以下是一些常见操作系统上的安装步骤:

Windows

  1. 下载 Docker Desktop for Windows
  2. 双击安装包并按照提示进行安装。
  3. 安装完成后,启动 Docker Desktop。

macOS

  1. 下载 Docker Desktop for Mac
  2. 双击安装包并按照提示进行安装。
  3. 安装完成后,启动 Docker Desktop。

Linux

在 Ubuntu 上安装 Docker 的步骤如下:

sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install -y docker-ce
sudo systemctl status docker

Docker 基本命令

镜像命令

拉取镜像

从 Docker Hub 拉取镜像:

docker pull <image_name>:<tag>

例如,拉取最新版本的 Ubuntu 镜像:

docker pull ubuntu:latest
列出镜像

列出本地存储的所有镜像:

docker images
删除镜像

删除指定镜像:

docker rmi <image_id>

强制删除镜像:

docker rmi -f <image_id>
构建镜像

从 Dockerfile 构建镜像:

docker build -t <image_name>:<tag> <path_to_dockerfile>

例如,从当前目录下的 Dockerfile 构建镜像:

docker build -t myapp:latest .

容器命令

创建并运行容器

创建并运行容器:

docker run -d --name <container_name> <image_name>:<tag>

例如,运行一个 Ubuntu 容器:

docker run -d --name myubuntu ubuntu:latest
列出容器

列出所有正在运行的容器:

docker ps

列出所有容器(包括已停止的容器):

docker ps -a
停止容器

停止指定容器:

docker stop <container_id>
启动容器

启动指定容器:

docker start <container_id>
删除容器

删除指定容器:

docker rm <container_id>
进入容器

通过 exec 命令进入正在运行的容器:

docker exec -it <container_id> /bin/bash

网络命令

创建网络

创建自定义网络:

docker network create <network_name>
列出网络

列出所有网络:

docker network ls
删除网络

删除指定网络:

docker network rm <network_id>
将容器连接到网络

将指定容器连接到网络:

docker network connect <network_name> <container_id>
从网络断开容器

将指定容器从网络断开:

docker network disconnect <network_name> <container_id>

Docker 高级命令

数据卷

创建数据卷

创建数据卷:

docker volume create <volume_name>
列出数据卷

列出所有数据卷:

docker volume ls
挂载数据卷

将数据卷挂载到容器:

docker run -d --name <container_name> -v <volume_name>:<container_path> <image_name>:<tag>

例如,将数据卷挂载到 Ubuntu 容器的 /data 目录:

docker run -d --name myubuntu -v mydata:/data ubuntu:latest

Docker Compose

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过 docker-compose.yml 文件,可以方便地管理多个容器及其依赖关系。

安装 Docker Compose

可以使用以下命令安装 Docker Compose:

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
Docker Compose 基本命令
  • 启动服务:

    docker-compose up
    
  • 停止服务:

    docker-compose down
    
  • 查看服务日志:

    docker-compose logs
    
  • 重启服务:

    docker-compose restart
    

实战案例

部署一个简单的 Web 应用

下面是一个使用 Docker 部署简单的 Python Flask Web 应用的示例。

创建项目目录结构
myflaskapp/
├── app.py
├── Dockerfile
└── requirements.txt
编写 app.py
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello, World!"

if __name__ == '__main__':
    app.run(host='0.0.0.0')
编写 requirements.txt
flask
编写 Dockerfile
# 使用官方 Python 镜像作为基础镜像
FROM python:3.8-slim

# 设置工作目录
WORKDIR /app

# 复制当前目录内容到工作目录
COPY . /app

# 安装依赖
RUN pip install -r requirements.txt

# 暴露容器的 5000 端口
EXPOSE 5000

# 运行应用程序
CMD ["python", "app.py"]
构建并运行 Docker 容器
  1. 构建镜像:

    docker build -t myflaskapp:latest .
    
  2. 运行容器:

    docker run -d -p 5000:5000 myflaskapp:latest
    
  3. 在浏览器中访问 http://localhost:5000,应该看到 “Hello, World!”。

使用 Docker Compose 管理多容器应用

下面是一个使用 Docker Compose 管理多容器应用的示例,该应用包括一个 Flask Web 应用和一个 Redis 数据库。

创建项目目录结构
mycomposeapp/
├── app.py
├── Dockerfile
├── requirements.txt
└── docker-compose.yml
编写 app.py
from flask import Flask
from redis import Redis

app = Flask(__name__)
redis = Redis(host='redis', port=6379)

@app.route('/')
def hello():
    redis.incr('hits')
    return f"Hello, World! This page has been viewed {redis.get('hits').decode('utf-8')} times."

if __name__ == '__main__':
    app.run(host='0.0.0.0')
编写 requirements.txt
flask
redis
编写 Dockerfile
# 使用官方 Python 镜

像作为基础镜像
FROM python:3.8-slim

# 设置工作目录
WORKDIR /app

# 复制当前目录内容到工作目录
COPY . /app

# 安装依赖
RUN pip install -r requirements.txt

# 暴露容器的 5000 端口
EXPOSE 5000

# 运行应用程序
CMD ["python", "app.py"]
编写 docker-compose.yml
version: '3'

services:
  web:
    build: .
    ports:
      - "5000:5000"
  redis:
    image: "redis:alpine"
使用 Docker Compose 启动应用
  1. 启动应用:

    docker-compose up -d
    
  2. 在浏览器中访问 http://localhost:5000,应该看到 “Hello, World! This page has been viewed X times.”,其中 X 表示页面的访问次数。

总结

本文详细介绍了 Docker 的常用命令,包括镜像、容器和网络的基本命令,以及数据卷和 Docker Compose 等高级命令。通过实战案例展示了如何使用 Docker 部署和管理应用程序。希望本文能帮助读者全面掌握 Docker 的基本操作和高级用法,提高在容器化技术方面的技能。如果你有任何疑问或需要进一步的帮助,欢迎随时联系我。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一休哥助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值