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: 恋水无意