Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry

在这里插入图片描述

一、服务容器化概述

在这里插入图片描述

在这里插入图片描述

1、应用的种类太多,码头林立

在这里插入图片描述

2、微服务

在这里插入图片描述

3、康威定律

在这里插入图片描述

二、容器技术对比:Docker 与 Cloud Foundry

在这里插入图片描述

三、Docker能做什么

在这里插入图片描述

四、Docker Client/Server 架构

在这里插入图片描述

1、客户端

在这里插入图片描述

2、服务器

在这里插入图片描述

3、镜像仓库

在这里插入图片描述

4、镜像

4.1 生成自定义的Docker镜像【docker commit】

在这里插入图片描述
可以发布到私有仓库货公有仓库。

4.2 构建文件【利用自定义的Dockerfile文件,使用docker build命令构建新镜像】

在这里插入图片描述
在已有镜像的基础上添加新功能

在这里插入图片描述

5、容器

在这里插入图片描述

五、Linux部署并使用Docker

1、安装Docker

依次运行以下命令添加yum源

yum update
yum install epel-release -y
yum clean all
yum list

安装并运行Docker。

yum install docker-io -y
systemctl start docker

检查安装结果。

docker info

出现以下说明信息则表明安装成功。
在这里插入图片描述

2、Docker基本命令

2.1 镜像命令

列出镜像列表

$ docker images
$ docker image ls -a

运行 Docker 镜像(守护态方式)

$ docker run -d {镜像名}

删除指定 Docker 镜像

$ docker  image rm {镜像名}

删除 Docker 虚悬镜像

$ docker image prune

2.2 Docker 容器命令

列出正在运行的容器

$ docker ps -a

列出所有容器(包括已停止容器)

$ docker ps -l

进入运行中的 Docker 容器

$ docker exec -it {容器ID} /bin/bash

停止 Docker 容器

$ docker stop {容器ID}

删除指定 Docker 容器

$ docker rm -f {容器ID}

删除停止的 Docker 容器

$ docker container prune

查看 Docker 容器历史运行日志

$ docker logs {容器名}

实时监听 Docker 容器运行日志

$ docker logs -f {容器名}

2.3 Docker 数据卷命令

创建 Docker 数据卷

$ docker volume create {数据卷名}

列出所有 Docker 数据卷

$ docker volume ls

删除指定 Docker 数据卷

$ docker volume rm {数据卷名}

删除未关联(失效) Docker 数据卷

$ docker volume prune
$ docker volume rm $(docker volume ls -qf dangling=true)

2.4 Docker 文件操作命令

从主机复制文件到 Docker 容器中

$ sudo docker cp {主机内文件路径} {容器ID}:{容器内文件存储路径}

从 Docker 容器中复制文件到主机中

$ sudo docker cp {容器ID}:{容器内文件路径} {主机内文件存储路径}

2.5 其他

搜索镜像:docker search xxx

docker search rabbitmq:management

列出当前系统存在的镜像

docker images

拉取镜像

docker pull xxx

xxx是具体某个镜像名称(格式 REPOSITORY:TAG),REPOSITORY:表示镜像的仓库源,TAG:镜像的标签

docker pull rabbitmq:management

设置开机自启动

systemctl enable docker

启动Docker

systemctl start docker

运行一个容器:

docker run -d --name "xdclass_mq" -p 5672:5670 -p 5673:5670 rabbitmq:management
  1. 5672:5670-------前面的端口是宿主机的端口,后面的端口是docker容器的端口

  2. 5673:15670----前面的端口是宿主机的端口,后面的端口是docker容器的端口

  3. 上面写的两对端口映射,前面的2个端口都是宿主机的端口,所以不能相同;后面的2个端口都是各个容器各自的端口,可以相同。

     docker run - 运行一个容器
     -d 后台运行
     --name "xxx"
     -p 端口映射
     rabbitmq:management  (格式 REPOSITORY:TAG),如果不指定tag,默认使用最新的
    

检查容器内部信息:

docker inspect 容器名称
  • 停止某个容器:docker stop 容器名称

  • 启动某个容器:docker start 容器名称

  • 移除某个容器: docker rm 容器名称 (容器必须是停止状态)

六、镜像改造-Dockerfile应用【站在巨人肩膀上】

找一个最接近自己需求的基础镜像,在此基础上再添加自己的功能。

  • 先创建一个Dockerfile文件
  • 运行docker build -t mysh .命令(最后的.表示Dockerfile所在位置,mysh表示生产的镜像名称)
    在这里插入图片描述

七、Docker网络通信

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1、默认网络

1.1 默认none网络

在这里插入图片描述

1.2 默认host网络

在这里插入图片描述

1.3 默认bridge网络

在这里插入图片描述

2、自定义网络

2.1 自定义bridge网络

在这里插入图片描述

2.2 自定义overlay网络

在这里插入图片描述

2.3 自定义macvlan网络

在这里插入图片描述

3、第三方网络

3.1 第三方flannel网络

在这里插入图片描述

3.2 第三方weave网络

在这里插入图片描述

3.3 第三方calico网络

在这里插入图片描述




参考资料:
生产中的NLP:创建Docker镜像
基于Docker的Python开发

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值