一、服务容器化概述
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
-
5672:5670-------前面的端口是宿主机的端口,后面的端口是docker容器的端口
-
5673:15670----前面的端口是宿主机的端口,后面的端口是docker容器的端口
-
上面写的两对端口映射,前面的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网络通信