Docker容器搭建并运行实现过程详解

下面是" Docker容器搭建并运行实现过程详解"的完整攻略,同时附上两个示例说明。

Docker容器搭建并运行实现过程详解

什么是Docker

Docker是一个开源的容器化平台,能够将应用程序及其依赖项放入一个容器中,以便在不同的环境中运行。它能够实现跨平台、轻量级、高效等特性,受到广泛的关注和应用。

容器与虚拟机的对比

Docker容器是轻量级的虚拟化方式,与传统虚拟机相比,它具有以下优点:

  • 轻量级:Docker容器只需容器镜像和宿主机的一些控制信息就能运行,相较传统虚拟机所带的操作系统、内核等更轻量;
  • 运行速度快:传统虚拟机的启动时间常常需要数分钟,而Docker容器则只需秒级别快速启动;
  • 跨平台:Docker容器可以在不同的系统中运行,例如在一台Linux系统上创建的容器,在Windows或MacOS中同样可以运行;
  • 隔离性强:Docker容器与宿主机相互隔离,容器之间也互相隔离。这意味着如果某个容器崩溃或出现问题,其他容器和宿主机不会受到影响。

Docker技术架构

Docker架构主要由以下几部分组成:

  • Docker客户端:可以通过命令行或GUI与Docker服务器进行通信;
  • Docker daemon(服务器):读取Dockerfile文件中的指令,在宿主机上生成Docker容器镜像,以及为Docker容器提供运行环境和管理容器;
  • Docker Registry:管理Docker容器镜像,可用于共享和搭建私有Docker镜像库。

Docker的安装与配置

首先需要在官方网站中下载相应的Docker安装包(根据各个系统的不同)。下载地址:https://www.docker.com/products/docker-desktop

安装完成后配置Docker容器的镜像加速器,将镜像存储在使用镜像加速器到国内注册表中,可以使拉取拉取官方仓库中的镜像加速。具体配置方式如下:

  1. 在Docker Desktop的任务栏中找到“Settings”;
  2. 选择左侧菜单中的“Docker Engine”选项卡;
  3. 找到"registry-mirrors"配置,点击"+"添加mirror地址,如大致的中国区加速器有:
https://hub-mirror.c.163.com
https://docker.mirrors.ustc.edu.cn/
https://reg-mirror.qiniu.com/
  1. 完成后保存退出。

Docker的基本使用方法

创建Docker容器

Docker容器必须基于镜像创建,所以第一步必须先拉取或者创建一个容器镜像。docker run命令用于拉取镜像并在镜像基础上启动一个新容器。具体使用方法为:

sudo docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  • OPTIONS:启动容器时指定的一些选项参数;
  • IMAGE:启动容器时使用的镜像名称或ID;
  • COMMAND:容器启动后需要执行的命令;
  • ARG:向容器中传递的参数。

例如,拉取并启动官方的hello-world镜像,则可以输入以下命令:

sudo docker run hello-world

查看Docker容器

通过docker ps命令可以查看当前正在运行的Docker容器,可以查看到容器ID、容器名称、状态、创建时间、端口信息等。具体使用方法为:

sudo docker ps [OPTIONS]
  • OPTIONS:启动容器时指定的一些选项参数。例如"-a"选项,会显示所有的Docker容器信息。

例如,如果要查看当前正在运行容器的信息,可以输入以下命令:

sudo docker ps

启动、停止和重启Docker容器

使用docker start命令可以启动一个当前未运行的Docker容器,使用docker stop命令可以停止当前正在运行的容器,使用docker restart命令可以重启一个容器。具体使用方法为:

sudo docker start|stop|restart CONTAINER_ID|CONTAINER_NAME

其中,CONTAINER_ID或CONTAINER_NAME为需要启动、停止或重启的容器ID或容器名称。

例如,如果要重启一个容器名为“web1”的容器,则可以输入以下命令:

sudo docker restart web1

示例1:搭建一个Node.js服务器

以下是搭建一个Node.js服务器的完整过程。

  1. 首先创建一个新的目录,用于存储项目文件,并切换到该目录,例如:
mkdir node-app && cd node-app
  1. 创建一个名为“Dockerfile”的文件,并在文件中写入以下内容:
FROM node:10
WORKDIR /app
COPY . /app
RUN npm install
EXPOSE 3000
CMD ["npm", "start"]

以上内容主要是:

  • FROM node:10:从 Node.js 官方镜像中获取镜像,版本号位于 tags 中;
  • WORKDIR /app:设置工作目录在容器的/app目录下;
  • COPY . /app:将代码拷贝到容器中;
  • RUN npm install:在容器中运行 npm install 安装依赖;
  • EXPOSE 3000:将容器的 3000 端口暴露给主机;
  • CMD ["npm","start"]:以 npm start 命令来启动应用。

  • 构建 Docker 镜像:

sudo docker build -t my-node-app .
  • -t my-node-app:指定镜像的名称,". "表示当前目录下的 Dockerfile。

  • 在本地运行 Node.js 服务:

sudo docker run -p 3000:3000 -d my-node-app
  • -p 3000:3000:将容器的 3000 端口映射到主机的 3000 端口上;
  • -d:使用后台模式启动Docker容器。

  • 用浏览器访问 http://localhost:3000/, 就可以看到Node.js服务器响应的内容了。

示例2:搭建一个MySQL服务器

以下是搭建一个MySQL服务器的完整过程。

  1. 创建一个目录,用于存储项目文件,并切换到该目录,例如:
mkdir mysql-server && cd mysql-server
  1. 获取 MySQL 镜像:
sudo docker pull mysql:latest
  1. 运行 MySQL,并设置 root 用户密码:
sudo docker run --name my-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql
  • --name my-mysql:指定容器的名称;
  • -e MYSQL_ROOT_PASSWORD=my-secret-pw:设置root账户密码;
  • -d:使用后台模式启动Docker容器。

  • 编写一个应用程序,并使用 Docker 进行构建:

FROM node:10
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD [ "node", "index.js" ]
  1. 构建 Docker 镜像:
sudo docker build . -t my-app
  • .:表示当前目录;
  • -t my-app:为镜像指定名称。

  • 在运行的 MySQL 容器内创建一个数据库和表并添加数据:

sudo docker exec -it my-mysql bash
mysql -p
CREATE Database testdb;
USE testdb;
CREATE TABLE contacts (name VARCHAR(255), email VARCHAR(255));
INSERT INTO contacts VALUES ('Alice', 'alice@example.com');
INSERT INTO contacts VALUES ('Bob', 'bob@example.com');
exit;
  • -it my-mysql bash:进入正在运行的MySQL容器的bash终端。

  • 运行应用程序并连接到 MySQL 容器:

sudo docker run --name my-app --link my-mysql:mysql -p 8080:8080 -d my-app
  • mysql:在这个Docker容器中有mysql实例。
  • -p 8080:8080:设置端口映射。

  • 用浏览器访问 http://localhost:8080/ ,可以看到 MySQL 数据库中添加的数据。

小结

通过以上步骤,我们可以了解到Docker以及Docker容器的基本知识,了解如何构建和运行Docker容器。使用Docker可以更快地开发、测试和部署应用程序,并更好地隔离容器。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Docker容器搭建并运行实现过程详解 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Docker安装MySQL8.0的详细步骤(附图文!)

    下面是Docker安装MySQL8.0的详细步骤攻略,包含两条示例说明。 Docker安装MySQL8.0的详细步骤 前置条件 在开始操作之前,确保满足以下条件: 已经安装Docker 确认已经打开了Docker Daemon 确认已经安装Docker镜像 操作步骤 步骤一:下载MySQL8.0镜像 在Docker Hub上可以找到MySQL8.0的官方镜像…

    Docker 2023年5月16日
    00
  • Docker 存储驱动详细介绍

    Docker是一种轻量级容器化技术。Docker在容器运行时会创建一个可写的容器层,也叫容器存储层。Docker存储驱动是指Docker使用哪种技术来管理镜像和存储容器数据。不同的存储驱动采用不同的技术实现Docker镜像和容器的存储管理。下面我们详细介绍一下Docker存储驱动的几种类型。 Device Mapper存储驱动 Device Mapper存储…

    Docker 2023年5月15日
    00
  • Docker镜像构建原理解析(不装docker也能构建镜像)

    下面是详细讲解“Docker镜像构建原理解析(不装docker也能构建镜像)”的完整攻略。 Docker镜像构建原理解析 Docker是目前最流行的容器技术之一,在利用Docker构建应用程序环境时,常用到Docker镜像的概念。Docker镜像可以看做是一种软件打包格式,它包含了应用程序运行所需的全部环境。 本文将详细介绍Docker镜像的构建原理,包括使…

    Docker 2023年5月16日
    00
  • 谈谈我对docker的理解

    接下来我将详细讲解“谈谈我对docker的理解”的完整攻略,包括以下几个方面: 什么是Docker? Docker的优点是什么? Docker的使用示例1:搭建一个web应用 Docker的使用示例2:快速部署应用 什么是Docker? Docker是一种虚拟化技术,它可以帮助开发者将应用打包成一个Docker镜像文件,并在不同的系统上部署这个镜像文件。使用…

    Docker 2023年5月16日
    00
  • Linux搭建docker

    ### 1. 查看系统的内核版本 “`bash[root@wide ~]# uname -r3.10.0-1160.el7.x86_64“` ### 2. 将yum更新到最新版本 “`bash[root@wide ~]# yum upate -yComplete!“` ### 3. 安装Docker所需的依赖包 “`bash[root@wide ~…

    Docker 2023年4月13日
    00
  • docker swarm环境搭建

    docker swarm 是什么?   swarm 是 Docker 官方提供的一款集群管理工具,其主要作用是把若干台 Docker 主机抽象为一个整体,并且通过一个入口统一管理这些 Docker 主机上的各种 Docker 资源。   docker swarm 跟 k8s 一样,只是swarm比k8s上手简单,当然功能上也比k8s少一些,对于一些小型企业也…

    Docker 2023年4月11日
    00
  • 基于Docker的Etcd分布式部署的方法步骤

    下面我将详细讲解基于Docker的Etcd分布式部署的方法步骤。 准备工作 在进行Etcd分布式部署前,需要先准备以下环境: 安装了Docker和Docker Compose的Linux服务器节点,建议使用Ubuntu 18.04及以上版本。 至少三台Linux服务器节点,建议使用3台或其倍数个节点。 步骤一:编写Docker Compose文件 在任意一台…

    Docker 2023年5月15日
    00
  • docker create命令的用法说明

    请看下面的攻略: Docker create命令的用法说明 docker create命令创建并返回一个新的Docker容器,但不会启动它。创建容器后,你可以使用docker start命令来启动它。docker create命令通常与docker start、docker cp和docker attach一起使用。 下面我们对docker create命令…

    Docker 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部