将本地镜像发布到阿里云
有时候需要共享镜像或者习惯使用自己定义的镜像,可以注册私有仓库,国内推荐使用阿里云
步骤:
1.登录阿里云容器镜像服务:https://cr.console.aliyun.com/cn-hangzhou/repositories
2.将镜像推送到阿里云
# 登录
docker login --username=guangc201 registry.cn-hangzhou.aliyuncs.com
# 打tag
docker tag tomcat:7 registry.cn-hangzhou.aliyuncs.com/guangchen/springboot-test:tomcat7
# 推送
docker push registry.cn-hangzhou.aliyuncs.com/guangchen/springboot-test:tomcat7
# 拉取
docker pull registry.cn-hangzhou.aliyuncs.com/guangchen/springboot-test:tomcat7
如图:
Docker网络
Docker允许通过外部访问容器或容器互联的方式来提供网络服务。
安装Docker时,会自动安装一块Docker网卡称为docker0,用于Docker各容器及宿主机的网络通信,网段为172.0.0.1。如图:
Docker网络中有三个核心概念:沙盒(Sandbox)、网络(Network)、端点(Endpoint)。
- 沙盒,提供了容器的虚拟网络栈,也即端口套接字、IP路由表、防火墙等内容。隔离容器网络与宿主机网络,形成了完全独立的容器网络环境。
- 网络,可以理解为Docker内部的虚拟子网,网络内的参与者相互可见并能够进行通讯。Docker的虚拟网络和宿主机网络是存在隔离关系的,其目的主要是形成容器间的安全通讯环境。
- 端点,位于容器或网络隔离墙之上的洞,主要目的是形成一个可以控制的突破封闭的网络环境的出入口。当容器的端点与网络的端点形成配对后,就如同在这两者之间搭建了桥梁,便能够进行数据传输了。
Bridge
桥接模式,主要用来对外通信的,docker容器默认的网络使用的就是bridge。
使用bridge模式配置容器自定的网络配置
# 配置容器的主机名
docker run --name t1 --network bridge -h [自定义主机名] -it --rm busybox
# 自定义DNS
docker run --name t1 --network bridge --dns 114.114 -it --rm busybox
# 给host文件添加一条
docker run --name t1 --network bridge --add-host [hostname]:[ip] -it --rm busybox
Host
host类型的网络就是主机网络的意思,绑定到这种网络上面的容器,内部使用的端口直接绑定在主机上对应的端口,而如果容器服务没有使用端口,则无影响。
None
从某种意义上来说,none应该算不上网络了,因为它不使用任何网络,会形成一个封闭网络的容器
container
共享另外一个容器的network namespace,和host模式差不多,只是这里不是使用宿主机网络,而是使用的容器网络
Docker Compose
我们了解到可以使用一个Dockerfile模板文件来快速构建一个自己的镜像并运行为应用容器。但是在平时工作的时候,我们会碰到多个容器要互相配合来使用的情况,比如数据库加上咱们Web应用等等。这种情况下,每次都要一个一个启动容器设置命令变得麻烦起来,所以Docker Compose诞生了。
简介
Compose的作用是“定义和运行多个Docker容器的应用”。使用Compose,你可以在一个配置文件(yaml格式)中配
置你应用的服务,然后使用一个命令,即可创建并启动配置中引用的所有服务。
Compose中两个重要概念:
- 服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
- 项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml文件中定义。
安装
Compose支持三平台Windows、Mac、Linux,安装方式各有不同。我这里使用的是Linux系统,其他系统安装方法可以参考官方文档和开源GitHub链接:
Docker Compose官方文档链接:https://docs.docker.com/compose
Docker Compose GitHub链接:https://github.com/docker/compose
Linux上有两种安装方法,Compose项目是用Python写的,可以使用Python-pip安装,也可以通过GitHub下载二进制文件进行安装。
通过Python-pip安装
#1.安装Python-pip
yum install -y epel-release
yum install -y python-pip
#2.安装docker-compose
pip install docker-compose
#3.验证是否安装
docker-compose version
#4.卸载
pip uninstall docker-compose
如图: