帮助命令 | |
命令 | 作用 |
docker –help | 查看帮助信息 |
docker version | 查看 docker 版本号 |
docker info | 显示系统相关信息 |
镜像命令 | |
命令 | 作用 |
docker images | 列出系统当前镜像 |
docker search | 在 docker hub 中搜索镜像 |
docker pull | 从docker镜像源服务器拉取指定镜像或者库镜像 |
docker push | 推送指定镜像或者库镜像至docker源服务器 |
docker rmi | 移除一个或多个镜像[无容器使用该镜像才可删除,否则需删除相关容器才可继续或 -f 强制删除] |
docker rmi -f $(docker images -q) | 一次性删除多个镜像 |
容器命令 | |
命令 | 作用 |
docker run | 创建一个新的容器并运行一个命令 |
docker ps | 在列出当前所有正在运行的容器 |
docker start | 启动容器 |
docker restart | 重启运行的容器 |
docker stop | 停止容器 |
docker kill | 强制停止容器 |
docker rm | 删除已停止的容器 |
docker rm -f $(docker ps -a -q) | 一次性删除多个容器 |
docker logs | 输出当前容器日志信息 |
docker exec -it 容器ID /bin/bash | 进入正在运行的容器并以命令行交互 |
docker cp 容器ID:容器内路径 目的主机路径 | 拷贝容器文件到宿主机 |
docker cp 目的主机路径 容器ID:容器内路径 | 拷贝宿主机文件到容器 |
docker-compose常用命令 | |
命令 | 作用 |
docker-compose ps | 列出所有运行容器信息 |
docker-compose logs | 查看服务日志输出 |
docker-compose up -d | 构建、启动容器(-d 表示后台启动) |
docker-compose start 容器名 | 启动指定服务已存在的容器 |
docker-compose stop 容器名 | 停止已运行的服务的容器 |
docker-compose rm 容器名 | 删除指定服务的容器 |
docker-compose down | 停止并删除所有容器 |
一、Docker概述
Docker是一个开源的容器化技术,它允许开发者将应用程序以及其依赖项打包到一个可移植的容器中,然后将其部署到任何Docker环境中。通过这种方式,Docker简化了应用程序的部署和管理,使得开发人员可以更加专注于应用程序本身,而不是环境配置和依赖管理。
二、基本概念
- Docker镜像(Image):Docker镜像是基于联合文件系统的一种只读模板,用于创建Docker容器。它包含了容器运行所需的所有文件和配置。
- Docker容器(Container):容器是镜像的运行实例,类似于一个轻量级的沙箱环境。每个容器都是相互隔离的,并且拥有自己的文件系统、进程空间和网络栈。
- Docker仓库(Repository):仓库是用来存储Docker镜像的地方。Docker Hub是一个公开的仓库,供开发者上传和下载镜像。
三、安装方法
安装Docker的具体步骤可能会因操作系统而异。以下是常见的安装方法:
-
对于Ubuntu系统,可以使用以下命令安装Docker:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
- 对于Windows系统,可以从Docker官方网站下载并安装Docker Desktop应用程序。
- 对于macOS系统,同样可以从Docker官方网站下载并安装Docker Desktop应用程序。
四、常用命令
- 运行一个容器:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
- 列出正在运行的容器:
docker ps
- 列出所有容器:
docker ps -a
- 停止一个容器:
docker stop CONTAINER
- 启动一个容器:
docker start CONTAINER
- 删除一个容器:
docker rm CONTAINER
- 拉取镜像:
docker pull IMAGE
- 推送镜像到仓库:
docker push IMAGE
- 构建镜像:
docker build -t IMAGE:TAG .
- 查看容器日志:
docker logs CONTAINER
- 进入容器交互模式:
docker exec -it CONTAINER COMMAND
- 拷贝文件/目录到容器:
docker cp SOURCE_PATH CONTAINER:DEST_PATH
- 从容器拷贝文件/目录到宿主机:
docker cp CONTAINER:SOURCE_PATH HOST:DEST_PATH
五、实战案例:使用Docker部署一个简单的Web应用程序
假设我们有一个基于Python的Flask应用程序,我们希望使用Docker将其部署到生产环境。以下是具体步骤:
-
创建一个名为
Dockerfile
的文件,并添加以下内容:
# 使用官方Python运行时作为基础镜像
FROM python:3.8-slim-buster
# 设置工作目录为/app
WORKDIR /app
# 将当前目录内容复制到容器的/app中
ADD . /app
# 安装应用程序所需的依赖项(如果有的话)
RUN pip install --no-cache-dir -r requirements.txt
# 设置环境变量(可选)
ENV NAME World
# 在容器启动时运行应用程序(CMD ["python", "app.py"])或者一个启动脚本(CMD ["/bin/sh", "-c", "./start.sh"])
CMD ["python", "app.py"]
```请确保将`app.py`替换为您的实际应用程序入口点,并根据需要添加其他设置和依赖项。
2. 在同一目录下创建一个名为`requirements.txt`的文件,并添加您的应用程序所需的依赖项。例如:
```makefile
flask==2.0.1
```3. 构建镜像:在包含`Dockerfile`的目录中运行以下命令:
```bash
docker build -t my-web-app .
```这将根据`Dockerfile`构建一个名为`my-web-app`的镜像。构建过程可能需要一些时间,具体取决于您的网络连接和系统性能。4. 运行容器:使用以下命令运行应用程序容器:
```bash
docker run -p 5000:5000 my-web-app
```这将使用端口映射将容器的5000端口映射到主机的5000端口上。您可以根据需要更改端口号。5. 现在,您的Web应用程序应该正在运行并