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

Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第1张图片

一、服务容器化概述

Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第2张图片

Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第3张图片

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

Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第4张图片

2、微服务

Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第5张图片

3、康威定律

Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第6张图片

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

Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第7张图片

三、Docker能做什么

四、Docker Client/Server 架构

Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第8张图片

1、客户端

Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第9张图片

2、服务器

Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第10张图片

3、镜像仓库

Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第11张图片

4、镜像

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

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

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

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

Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第12张图片

5、容器

Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第13张图片

五、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

出现以下说明信息则表明安装成功。
Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第14张图片

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表示生产的镜像名称)
    Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第15张图片

七、Docker网络通信

Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第16张图片
Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第17张图片
Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第18张图片
Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第19张图片
Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第20张图片

1、默认网络

1.1 默认none网络

Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第21张图片

1.2 默认host网络

Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第22张图片

1.3 默认bridge网络

Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第23张图片

2、自定义网络

2.1 自定义bridge网络

Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第24张图片

2.2 自定义overlay网络

Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第25张图片

2.3 自定义macvlan网络

Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第26张图片

3、第三方网络

3.1 第三方flannel网络

Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第27张图片

3.2 第三方weave网络

Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第28张图片

3.3 第三方calico网络

Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry_第29张图片




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

你可能感兴趣的:(Java架构,Docker)