Docker 常用操作大全:从基础到进阶的全面指南

news/2024/12/12 18:49:22/

Docker 是当今 DevOps 和开发环境中最常用的容器化平台之一。它的易用性和功能强大,使得容器技术变得广泛流行,并成为软件开发流程的重要组成部分。为了帮助你掌握 Docker 的操作,本文将详细介绍 Docker 的各种常用操作,帮助你从基础命令到高级使用全面理解 Docker。

目录

  1. Docker 基本概念
  2. 安装 Docker
  3. Docker 镜像的操作
    • 查找镜像
    • 下载镜像
    • 删除镜像
  4. Docker 容器的操作
  5. 容器管理操作
  6. Docker 网络与卷操作
  7. Docker Compose 的基本操作
  8. Docker 高级操作
    • Dockerfile 构建镜像
    • 导入和导出镜像
  9. 小结

1. Docker 基本概念

Docker 是一个开源的平台,旨在通过容器化技术帮助开发者轻松创建、部署和运行应用程序。镜像(Image)容器(Container)Dockerfile 是 Docker 的核心概念:

  • 镜像 是用于创建容器的只读模板。
  • 容器 是镜像的运行实例,容器是应用运行的环境。
  • Dockerfile 是构建自定义镜像的脚本。

2. 安装 Docker

在大多数 Linux 发行版中,Docker 可以通过以下命令安装:

# 在 Ubuntu 上安装 Docker
sudo apt update
sudo apt install docker.io

在 Windows 和 macOS 上,也可以使用 Docker Desktop 进行安装,详细的安装步骤可以参考 Docker 官方文档。

3. Docker 镜像的操作

3.1 查找镜像

要查找镜像,可以使用 docker search 命令,例如查找官方的 Nginx 镜像:

docker search nginx
3.2 下载镜像

要从 Docker Hub 下载镜像,可以使用 docker pull 命令:

docker pull nginx

默认会下载最新版本的镜像,你也可以指定版本号,例如:

docker pull nginx:1.21
3.3 删除镜像

要删除本地的 Docker 镜像,可以使用 docker rmi 命令:

docker rmi nginx

4. Docker 容器的操作

4.1 创建和运行容器

使用 docker run 命令创建并运行一个容器

docker run -d --name mynginx -p 8080:80 nginx
  • -d:后台运行容器
  • --name:指定容器名称。
  • -p:端口映射,将本地 8080 端口映射到容器的 80 端口。
4.2 停止和启动容器
4.3 删除容器

要删除容器,首先需要停止它,然后使用 docker rm 命令:

docker stop mynginx
docker rm mynginx

5. 容器管理操作

5.1 查看容器日志

使用 docker logs 查看容器的输出日志:

docker logs mynginx
5.2 进入容器

要进入正在运行的容器,可以使用 docker exec 命令。例如,进入一个正在运行的容器并打开 bash 终端:

docker exec -it mynginx /bin/bash
5.3 拷贝文件

使用 docker cp 命令,可以从主机和容器之间相互复制文件。例如,从容器中拷贝文件到主机:

docker cp mynginx:/usr/share/nginx/html/index.html /home/user/

6. Docker 网络与卷操作

  • 创建网络:Docker 默认提供 bridge 网络,但你也可以创建自定义网络:

    docker network create mynetwork
    
  • 挂载卷:在启动容器时,可以使用 -v 选项挂载数据卷,以便持久化数据:

    docker run -d --name mynginx -v /home/user/nginx_data:/usr/share/nginx/html nginx
    

7. Docker Compose 的基本操作

Docker Compose 是一种用于定义和运行多容器 Docker 应用的工具。通过编写一个 docker-compose.yml 文件,可以用一个命令启动所有服务:

8. Docker 高级操作

8.1 Dockerfile 构建镜像

Dockerfile 是构建自定义镜像的脚本。以下是一个简单的 Dockerfile 示例:

dockerfile">FROM nginx
COPY ./index.html /usr/share/nginx/html/index.html

通过 docker build 命令构建镜像:

docker build -t mynginx:1.0 .
8.2 导入和导出镜像
  • 导出镜像:将 Docker 镜像导出为 tar 文件:

    docker save -o mynginx.tar mynginx:1.0
    
  • 导入镜像:从 tar 文件中导入镜像:

    docker load -i mynginx.tar
    

9. 小结

本文详细介绍了 Docker 中常用的各种操作,从基础的镜像和容器管理,到网络配置和数据卷,再到 Docker Compose 和 Dockerfile 的高级用法。这些命令和操作是日常使用 Docker 时最为常见的工具,掌握它们将帮助你更好地管理容器化应用。

Docker 的优势在于它使得应用的开发、测试、部署更加轻松,同时也带来了高效的隔离和资源利用。通过对这些操作的熟练掌握,你可以更加自如地应对开发过程中的各种挑战,构建出更加稳定、灵活的应用。


http://www.ppmy.cn/news/1554566.html

相关文章

python使用dump_cmd备份mysql报错

这个错误信息表明 Python 在尝试执行一个外部命令时,无法找到指定的文件。错误 [WinError 2] 系统找不到指定的文件。 指的是 Windows 系统无法找到你尝试运行的程序或命令。 从错误信息来看,问题发生在 subprocess.run(dump_cmd) 这一行。这里的 dump_…

Docker 安装 Jenkins:2.346.3

准备:已安装Docker,已配置服务器安全组规则 1581 1、拉取镜像 [rootTseng ~]# docker pull jenkins/jenkins:2.346.3 2.346.3: Pulling from jenkins/jenkins 001c52e26ad5: Pull complete 6b8dd635df38: Pull complete 2ba4c74fd680: Pull complet…

ubuntu 安装docker遇到的问题,如何解决的

1.服务器先确保可以访问外网 ping或者telnet 2.看下liunx操作系统是什么版本,从阿里云镜像里面找到对应的版本 粘贴到sources里面,没权限,要给权限 获取镜像的地址:ubuntu镜像_ubuntu下载地址_ubuntu安装教程-阿里巴巴开源镜像…

Python使用Selenium库获取 网页节点元素、名称、内容的方法

我们要用到一些网页源码信息,例如获取一些节点的class内容, 除了使用Beautifulsoup来解析,还可以直接用Selenium库打印节点(元素)名称,用来获取元素的文本内容或者标签名。 例如获取下面的class的内容&am…

关于睡懒觉

我们经常听到一个词:睡懒觉。 我认为,睡懒觉这个词,是错误的。 人,是需要睡眠的,睡不够,就不会醒。睡够了,自然会醒,也不想继续睡。不信你试试,睡够了,你…

MMPano 部署笔记

目录 开源地址: 依赖项: 报错信息:pip list | grep habana-torch-plugin 检查版本代码: 解决方法 不用 hpu: 依赖模型: 推理代码修改: 开源地址: https://github.com/IntelL…

OpenAI直播发布第4天:ChatGPT Canvas全面升级,免费开放!

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,专注于分享AI全维度知识,包括但不限于AI科普,AI工…

【bug】python pandas KeyError: ‘index’

【bug】python pandas KeyError: index’ 环境 pandas 2.2.3问题详情 代码 import pandas as pd# 创建一个示例 DataFrame data {id: [1, 2, 3],name: [Alice, Bob, Charlie],age: [100, 200, 300] } df pd.DataFrame(data) # 这里的reset_index()用于将 Seri…