1. Docker是什么

Docker是一个开源的容器化平台,用于构建、发布和运行应用程序。它通过容器来打包应用程序及其所有依赖项,从而使应用程序在任何环境中都能以一致的方式运行。Docker容器是轻量级的虚拟化,它们在运行时共享主机操作系统内核,从而节省了资源和启动时间,并提高了应用程序的可移植性和可部署性。

与虚拟化相比,Docker容器更加轻量级。在传统虚拟化中,每个虚拟机都需要运行一个完整的操作系统,这会占用大量资源和时间。而Docker容器只需要运行一个应用程序及其依赖项,共享主机操作系统内核,从而大大减少了资源和启动时间的消耗。此外,Docker容器还提供了更好的可移植性和可部署性,因为它们打包了应用程序及其依赖项,可以轻松地在不同的环境中运行,而不需要担心环境差异导致的问题。

总之,Docker提供了一种更加轻量级、便捷、可移植和可部署的应用程序打包和运行方式,相对于传统的虚拟化技术,具有更高的效率和更低的资源消耗。

2. Docker使用

2.1 安装Docker

使用Docker前需要先确保你的机器上已经安装了Docker。Docker支持多种操作系统,官方提供了不同系统的安装方法,详见官方安装文档,我这里就不做赘述了。

2.2 获取Docker镜像

Docker镜像是一个包含了应用程序和其依赖的运行时环境的打包文件。

Docker镜像的获取有两种方式,一种是通过Docker Hub或者其他的Docker Registry来获取镜像。例如,可以通过以下命令获取官方的Nginx镜像:

$ docker pull nginx

还有一种就是通过Dockerfile的方式来构建自己的Docker镜像。例如构建一个我们自己的Nginx镜像,Dockerfile内容如下:

FROM ubuntu
RUN apt-get update && apt-get install -y nginx
CMD ["nginx", "-g", "daemon off;"]

然后通过docker build命令构建我们自己的镜像:

$ docker build -t nginx .

镜像构建完成后还可以将我们构建的镜像推送到Docker hub供他人使用:

$ docker login
$ docker tag nginx yourusername/nginx
$ docker push yourusername/nginx

2.3 运行Docker容器

通过Docker镜像运行容器,例如,可以通过下面的命令来启动一个nginx容器:

$ docker run --name web -p 80:80 -d nginx

这个命令会创建一个名为web的容器,并将容器内的80端口映射到主机的80端口上。-d参数表示容器在后台运行。可以使用docker ps命令查看当前运行的容器。

2.4 进入Docker容器

可以使用docker exec命令来进入运行中的容器:

$ docker exec -it web bash

这个命令会进入web容器,其中,-it选项是以交互模式运行容器并分配TTY终端,bash是要在容器中运行的命令。

2.5 关停Docker容器

可以使用docker stop命令来关停运行中的容器:

$ docker stop web

2.6 删除Docker容器

可以使用docker rm命令来删除容器:

$ docker rm web

3. docker-compose使用

Docker镜像的使用,除了上面介绍的通过docker命令来执行外,还可以通过docker-compose来管理和使用Docker容器。

docker-compose使用一个管理Docker容器的工具,它使用yaml文件来定义和管理容器。可以从github上下载对应的docker-compose程序。

以下是docker-compose的基本使用步骤。

3.1 创建docker-compose文件

首先需要创建一个yaml文件,其中定义要运行的容器和服务。还是以上面的nginx容器为例,这里使用官方的nginx镜像:

version: '3'

services:
  web:
    image: nginx:1.23.4-alpine
    restart: always
    container_name: web
    ports:
      - 80:80
      - 443:443
    networks:
      - webtest


networks:
  webtest:

3.2 启动服务

可以使用docker-compose up命令来启动容器和服务:

$ docker-compose up

使用-f参数可以指定配置文件:

$ docker-compose up -f compose.yaml

还可以追加-d参数让容器在后台运行:

$ docker-compose up -f compose.yaml -d

3.3 关闭服务

可以使用docker-compose stop命令来关闭容器和服务:

$ docker-compose stop

3.4 删除服务

可以使用docker-compose rm命令来关闭容器和服务:

$ docker-compose down

孟斯特

声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。
Author: mengbin
blog: mengbin
Github: mengbin92
cnblogs: 恋水无意