当前位置: 首页 > article >正文

简明docker快速入门并实践方法

简明docker快速入门并实践方法

  • 前言:
  • 1. 什么是Docker?
  • 2. Docker的基本概念
  • 3. 安装配置Docker
  • 4. Docker基本命令:
  • 5. 简单实践:拉取Nginx镜像-自定义配置-推送镜像
    • 步骤 1:拉取Nginx镜像
      • 步骤 1.5(可选):运行Nginx容器以熟悉操作
    • 步骤 2:创建自定义Nginx配置文件
    • 步骤 3:创建Dockerfile
    • 步骤 4:构建Docker镜像
    • 步骤 5:运行Docker容器
    • 步骤 6(可选):登录Docker Hub并推送镜像
  • 6.补充内容
    • Docker网络的基本概念
    • Docker网络的基本命令

前言:

这是一篇简明docker快速入门并实践方法,目的是希望大家在半个小时内对docker快速了解并进行操作。故比较简洁(不过基本的使用方法都包含了),建议和那些更详细的知识帖结合起来看。

下面有两个视频,第一个视频看完可以对docker有基本的了解。第二个视频看完可以学会一些docker的实操操作。大家可以先看第一个视频后,再根据我下面分享的知识直接进行docker的实践操作:

  1. 改变软件行业的技术!程序员、软件爱好者必须掌握的Docker,到底是什么?
  2. 保姆级Docker入门教程:10分钟从零开始彻底掌握 Docker,0 基础到实战部署

1. 什么是Docker?

Docker是基于Linux容器技术的一种应用,它使得开发者能够将应用程序及其依赖打包成一个轻量级、可移植的容器。从而确保该应用能够在任何环境中一致地运行。相比传统的虚拟机技术,Docker更加高效和快速,因为它不包含整个操作系统,而是共享主机操作系统的内核。

2. Docker的基本概念

  1. 镜像(Image)
    • 用于创建容器的只读模板,包含运行某个应用所需的所有代码、库、配置文件等。
    • 使用docker pull <image_name>从Docker Hub拉取镜像。
  2. 容器(Container)
    • 镜像的运行实例。它可以被启动、开始、停止、删除,并且可以通过Docker命令行接口与之交互。
    • 使用docker run <image_name>启动容器
  3. 仓库(Repository)
    • 存储和分享Docker镜像的地方。分为公共仓库(如Docker Hub)和私有仓库。
    • 使用docker login登录Docker Hubdocker push <image_name>推送镜像。
  4. Dockerfile
    • Dockerfile定义了构建镜像的步骤,通过docker build -t <image_name> .命令创建镜像。
    • 示例:
    FROM ubuntu:latest
    RUN apt-get update && apt-get install -y nginx
    EXPOSE 80
    CMD ["nginx", "-g", "daemon off;"]
    

3. 安装配置Docker

访问Docker官网下载适合的版本。对于Windows和macOS用户,推荐使用Docker Desktop,它集成了Docker引擎、Docker CLI客户端和其他实用工具。

  1. 安装Docker

    • 访问Docker官网(https://www.docker.com/products/docker-desktop),根据你的操作系统(WindowsmacOSLinux)下载并安装Docker DesktopDocker Engine
    • 安装完成后,通过命令行(如WindowsPowerShellLinuxTerminal)运行docker --version检查安装是否成功。
  2. 基本配置

    • 登录Docker Hub(可选,用于拉取或推送镜像):docker login
    • 配置Docker以使用非默认设置(如代理、存储驱动等),可参考官方文档。

4. Docker基本命令:

  • 基本命令
    • docker --version:检查Docker是否正确安装及当前版本。
    • docker pull <image-name>:从Docker Hub下载指定的镜像。
    • docker images:列出本地所有的镜像。
    • docker run <image_name>:启动容器。
    • docker run -it --rm <image-name>:基于镜像启动一个新的容器,并进入其内部shell环境。
    • docker ps:显示正在运行的容器。
    • docker ps -a:查看所有容器(包括停止的)。
    • docker stop <container-id>:停止指定ID的容器。
    • docker rm <container_id>:删除指定ID的容器
    • docker tag <镜像名>:<标签> <仓库用户名>/<镜像名>:<标签> : 为自己设置的镜像添加标签
    • docker push <仓库用户名>/<镜像名>:<标签> 推送镜像到仓库

5. 简单实践:拉取Nginx镜像-自定义配置-推送镜像

步骤 1:拉取Nginx镜像

首先,从Docker Hub拉取官方的Nginx镜像:

docker pull nginx:latest

确认镜像已成功拉取:

docker images

你应能在列表中看到名为nginx且标签为latest的镜像。

操作解释

  • docker pull 命令用于从Docker Hub或其他容器镜像仓库中拉取镜像。
  • nginx:latest 指定了要拉取的镜像名称和标签(这里是最新的稳定版)。
  • 使用 docker images 命令查看本地已有的镜像列表,确认nginx镜像是否已成功拉取。

步骤 1.5(可选):运行Nginx容器以熟悉操作

docker run -d -p 8080:80 --name my-test-nginx nginx:latest
  • -d 表示以守护进程模式运行容器。
  • -p 8080:80 将容器的80端口映射到主机的8080端口。
  • --name my-test-nginx 为容器指定一个名称。

现在,你可以在浏览器中访问 http://localhost:8080,应该会看到Nginx的默认欢迎页面。

注意:在继续下一步之前,你可以使用 docker stop my-test-nginx 停止这个容器,并使用 docker rm my-test-nginx 删除它(如果你不再需要它的话,不过这里不删)。

docker stop my-test-nginx
docker rm my-test-nginx

步骤 2:创建自定义Nginx配置文件

在创建自定义配置文件前,先了解Nginx默认配置的关键部分。Nginx的主配置文件通常位于/etc/nginx/nginx.conf,它定义了Nginx的工作方式、事件处理、HTTP服务器设置等。

现在,我们将创建一个自定义配置文件。首先,首先,创建一个新的目录用于存放你的Nginx配置文件和Dockerfile文件。例如,创建名为my-nginx-config的目录:

mkdir my-nginx-config
cd my-nginx-config

然后,在该目录中创建一个名为nginx.conf的文件,并添加以下内容:(这是一个简化的nginx.conf示例,它保留了Nginx的基本功能,并且容易理解)

user  nginx;
worker_processes  1;  # 对于简单实践,我们可以只使用一个工作进程

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;  # 每个worker进程的最大连接数
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    tcp_nopush     on;
    tcp_nodelay    on;
    keepalive_timeout  65;

    include /etc/nginx/conf.d/*.conf;  # 默认包含的配置文件目录,可以添加自定义配置

    # 定义一个简单的服务器块,用于测试
    server {
        listen       80;
        server_name  localhost;

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }

        # 错误页面处理
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }
}

步骤 3:创建Dockerfile

在同一目录下(my-nginx-config),创建一个名为Dockerfile的文件,并添加以下内容:

# 使用官方的Nginx镜像作为基础镜像
FROM nginx:latest

# 将当前目录下的nginx.conf文件复制到容器中的/etc/nginx/nginx.conf位置.
# 注意:这里假设Dockerfile和nginx.conf在同一目录下
COPY nginx.conf /etc/nginx/nginx.conf

# 如果有其他配置文件或静态资源,也可在此处复制
# COPY default.conf /etc/nginx/conf.d/default.conf
# COPY html/ /usr/share/nginx/html/

# 暴露80端口(Nginx默认端口)
EXPOSE 80

# 启动Nginx服务,并保持在前台运行(daemon off)
CMD ["nginx", "-g", "daemon off;"]

解释

  • COPY nginx.conf /etc/nginx/nginx.conf:这条指令将本地(构建上下文)的nginx.conf文件复制到容器内的/etc/nginx/nginx.conf位置,替换掉容器默认的Nginx配置文件。
  • EXPOSE 80:这条指令告诉Docker,容器在运行时需要监听80端口(虽然这不是必需的,因为Nginx默认监听80端口,但声明一下是个好习惯)。
  • CMD ["nginx", "-g", "daemon off;"]:这条指令指定了容器启动时默认执行的命令。这里使用daemon off参数是为了让Nginx在前台运行,这样Docker容器就不会因为Nginx进入后台而立即退出。

步骤 4:构建Docker镜像

返回上一级目录(包含Dockerfilenginx.conf的目录),然后构建Docker镜像:

docker build -t my-custom-nginx .
  • 这将创建一个名为my-custom-nginx的Docker镜像。
  • -t选项用于为镜像指定标签,.表示当前目录为构建上下文。

步骤 5:运行Docker容器

使用刚刚构建的镜像运行容器:

docker run -d -p 8080:80 --name my-custom-nginx-container my-custom-nginx
  • 这将启动一个名为my-custom-nginx-container的容器,并将容器的80端口映射到主机的8080端口。
  • 访问http://localhost:8080,你将看到基于自定义配置的Nginx页面。

步骤 6(可选):登录Docker Hub并推送镜像

首先,登录Docker Hub:

docker login

然后,为镜像打标签(如果你的Docker Hub用户名是your-username):

docker tag my-custom-nginx your-username/my-custom-nginx

最后,推送镜像到Docker Hub

docker push your-username/my-custom-nginx

至此,你已经成功地创建了一个自定义的Nginx镜像,并将其推送到了Docker Hub

6.补充内容

Docker网络的基本概念

  • 网络(Networking)
    • Docker容器可以通过Docker网络相互通信,也可以与外部网络通信。Docker提供了多种网络模式,如bridge、host、overlay等。
  • 卷(Volumes)
    • Docker卷用于持久化数据,即使容器被删除,卷中的数据仍然保留。这有助于数据的备份、恢复和迁移。
  • Compose(docker-compose)
    • Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。通过docker-compose.yml文件,可以轻松地配置和管理多个容器的启动、停止和连接。

Docker网络的基本命令

  • docker network ls:列出所有Docker网络。
  • docker volume ls:列出所有Docker卷。
  • docker-compose up:根据docker-compose.yml文件启动所有服务。
  • docker-compose down:停止并移除由docker-compose.yml定义的所有容器、网络、卷和默认网络。

http://www.kler.cn/a/507695.html

相关文章:

  • Quantum supremacy using a programmable superconducting processor 全文翻译,配公式和图
  • Java基础(一)
  • 【Linux】Socket编程-TCP构建自己的C++服务器
  • RabbitMQ前置概念
  • SparkSQL数据模型综合实践
  • VUE学习笔记4__安装开发者工具
  • 代码随想录算法训练营day23(0116)
  • 纯代码实现给WordPress添加文章复制功能
  • C#实现字符串反转的4种方法
  • openharmony/build/README_zh.md学习
  • 查找某个年龄段的用户信息TCP头格式为什么需要 TCP 协议? TCP 工作在哪一层?
  • Spring Boot 条件注解:@ConditionalOnProperty 完全解析
  • 整数的分离与合成
  • DNS介绍(3):应用场景
  • 数据结构之哈希表详解
  • 【Block总结】WTConv,小波变换(Wavelet Transform)来扩展卷积神经网络(CNN)的感受野
  • 【论文阅读笔记】基于YOLO和ResNet深度卷积神经网络的结直肠息肉检测
  • 【SQL】查询前三名
  • STM32 FreeRTOS 任务创建和删除实验(动态方法)
  • 机器学习和深度学习是人工智能(AI)领域的两个重要分支,它们都依赖于数学、统计学和计算机科学的基础知识。
  • Ubuntu系统备份与还原
  • ECCV2020 | YAILA | 又一种中间层攻击方法
  • 如何进行域名跳转与域名重定向的综合指南
  • 一个悄然崛起的开源项目,已开源
  • JavaScript 变量与数据类型
  • WEB攻防-通用漏洞_XSS跨站_MXSS_UXSS_FlashXSS_PDFXSS