Docker基础操作

1.1 Docker在线安装

1.1.1 安装基础软件包

sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。

1.1.2 安装docker主程序

1.1.2.1 设置国内源
sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.1.2.2 安装docker
sudo yum install docker-ce

1.2 Docker离线安装

1.2.1 下载离线安装包

以docker 17.12.0版本为例说明。
下载下面的10个安装文件,并按照下面的目录结构上传好。
package下面的8个文件为依赖包,最上面的2个文件为主安装文件。
在这里插入图片描述

1.2.2 安装docker依赖包以及docker

cd package
rpm -Uvh *.rpm --nodeps –force
cd ../
rpm -Uvh container-selinux-2.99-1.el7_6.noarch.rpm
rpm -Uvh docker-ce-17.12.0.ce-1.el7.centos.x86_64.rpm

1.3 设置自启动并启动dokcer

sudo systemctl enable docker
sudo systemctl start  docker

docker –v 验证是否安装成功

1.4 安装docker-compose

上面docker安装好后,只能通过手工输入命令,并在命令行中指定配置运行dokcer应用。效率低下且无法同时管理多个容器应用。
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。但是docker-compose需要独立安装。

1.4.1 命令行下载文件,并赋值可执行权限

sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
 sudo chmod +x /usr/local/bin/docker-compose

docker-compose -v 验证是否安装成功

Docker常用命令

1.5 新建并启动容器

docker run -p 80:80 --name nginx -d nginx:1.17.0

-d选项:表示后台运行
–name选项:指定运行后容器的名字为nginx,之后可以通过名字来操作容器
-p选项:指定端口映射,格式为:hostPort:containerPort

1.6 列出容器

docker ps

1.7 列出所有容器

docker ps -a

1.8 停止容器

# $ContainerName及$ContainerId可以用docker ps命令查询出来
docker stop $ContainerName(或者$ContainerId)

比如:
docker stop nginx
#或者
docker stop c5f5d5125587

1.9 强制停止容器

docker kill $ContainerName(或者$ContainerId)

1.10 启动已停止的容器

docker start $ContainerName(或者$ContainerId)

1.11 删除容器

删除指定容器

docker rm  $ContainerName(或者$ContainerId)

强制删除所有容器

docker rm -f  $(docker ps -a -q)

1.12 查看容器的日志

docker logs $ContainerName(或者$ContainerId)

1.13 查看指定容器情况

docker stats $ContainerName(或者$ContainerId)

1.14 查看所有容器情况

docker stats -a

1.15 进入Docker容器内部的bash

docker exec -it $ContainerName /bin/bash

1.16 docker命令图

在这里插入图片描述

Docker打包应用流程

1.17 打包应用工程

如果为springboot工程,按普通mvn方式打包成jar
如果为nodejs前端工程,按正常npm命令打包。

1.18 编写Dockerfile文件

Dockerfile 是一个用来构建镜像的文本文件, 简单来说就是通过此文件定义了打包镜像的过程。

Dockerfile常见命令
在这里插入图片描述

1.19 编写docker-compose文件

Docker-compose.yml文件是docker应用的单机编排文件,他将前面需要通过命令行指定配置参数启动容器应用的繁琐操作中解脱出来。将配置和命令写入到文件中,通过简单的命令一键加载配置并启动容器,同时还支持指定打包镜像。
下面以一个完整的例子进行说明:
本例实现了在docker中启动3个tomcat实例,tomcat01、tomcat02、tomcat03和1个nginx实例,并将通过nginx做负载,在nginx 80端口提供服务。
在这里插入图片描述
运行方式,cd到docker-compose文件目录下,执行以下命令启动或关闭

docker-compose up -d
docker-compose down

1.20 Docker-compose弊端

  1. 单机版编排,无法支持大规模场景下的部署和管理
  2. 无法动态扩容,根据需要来调整实例规模。
    幸运的是,Docker Stack 为解决该问题而生。

1.21 Docker stack介绍

简而言之,docker-compose适用于开发和测试。Docker Stack 则适用于大规模场景和生产环境。Docker Stack 和 Docker Compose 的一个区别是 Stack 不支持构建。这意味着在部署 Stack 之前,所有镜像必须提前构建完成。

1.21.1 启用docker stack

docker swarm init

在这里插入图片描述

1.21.2 运行Docker stack

docker stack deploy -c docker-stack.yml stack

配置文件docker-stack.yml内容如下
在这里插入图片描述
重点是deploy节点,这边定义了服务的副本(replicas)数量为 2, 对于当前服务,升级时Docker 每次会更新2个副本(parallelism)。

1.21.3 Docker stack相关命令

1.21.3.1 查看服务器节点状态

在这里插入图片描述
表示系统只有一个节点,角色为leader

1.21.3.2 查看服务状态

在这里插入图片描述
系统运行2个服务,其中stack_tomcat 副本为3,也就是3个容器实例作为一个集群提供服务。

1.21.3.3 动态扩容

在这里插入图片描述
系统将stack_tomcat扩容为4个实例。

1.21.3.4 其他命令

命令用于从 Swarm 集群中移除服务stack。移除操作执行前并不会进行二次确认。

docker stack rm stack

查看日志信息

docker stack ps --no-trunc stack

管理器节点离开Docker Swarm模式

docker swarm leave –force

普通节点离开Docker Swarm模式

docker swarm leave

好记性不如烂笔头,共勉!

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐