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日

相关文章

  • Centos7安装docker和docker-compose

    # 使用yum安装docker yum -y install docker # 启动 systemctl start docker.service # 设置为开机自启动 systemctl enable docker.service 2.安装docker-compose # 下载docker-compose sudo curl -L “https://git…

    Docker 2023年4月16日
    00
  • centos7使用docker安装sentry

    环境:centos7、docker19 基础环境需求 * Docker 17.05.0+ * Compose 1.23.0+ 流程:docker安装–>docker-compose安装–>clone项目–>安装sentry–>启动sentry–>访问验证(可以直接查看安装文档  more onpremise/READM…

    Docker 2023年4月11日
    00
  • docker + jenkins +net core自动化部署

    开始安装jenkins 1.启动docker,下载Jenkins镜像文件 docker pull jenkins/jenkins        2.创建Jenkins挂载目录并授权权限(我们在服务器上先创建一个jenkins工作目录 /var/jenkins_mount,赋予相应权限,稍后我们将jenkins容器目录挂载到这个目录上,这样我们就可以很方便地对…

    Docker 2023年4月11日
    00
  • 用Dockerfile制作一个java应用镜像,ubuntu基础篇

    docker 自定义镜像制作 内容介绍: (1) 本章目的,将一个自行开发的java程序webpay-api,制作为docker自定义镜像,并且进行部署。 (2) 实验环境:   物理机:VMware 虚拟机 + CentOS 7.8 x64   Docker:Docker version 20.10.17, build 100c701 (3) 基础镜像: …

    Docker 2023年4月11日
    00
  • docker、docker-compose安装,卸载

      docker win10安装 一、安装 https://www.docker.com/docker-windows   二、设置 控制面板–>程序–>Hyper-V   linux安装: http://www.cnblogs.com/yufeng218/p/8370670.html    docker-compose安装: linux安装…

    Docker 2023年4月13日
    00
  • 谈谈我对docker的理解

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

    Docker 2023年5月16日
    00
  • docker实践之容器的导入与导出

    Docker实践之容器的导入与导出 Docker 是一个开源的项目,利用它可以轻松地创建,部署和运行应用程序。本文将介绍 Docker 中容器的导入和导出操作,以便更好的管理 Docker 容器。 容器的导出 如果要将一个正在运行的 Docker 容器导出,就可以使用 docker export 命令。这个命令会将整个容器打包成一个 tar 文件,保存在指定…

    Docker 2023年5月16日
    00
  • Docker之修改/etc/default/docker 里的DOCKER_OPTS参数不生效问题

    针对“Docker之修改/etc/default/docker 里的DOCKER_OPTS参数不生效问题”,我给出以下攻略: 1. 问题描述 在修改/etc/default/docker中的DOCKER_OPTS参数后,重启docker服务,发现修改并没有生效,依旧启用默认参数。 2. 原因分析 这个问题的原因是因为Docker的服务启动时,是根据/lib/…

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