Docker的应用场景
1.简化配置,同一Docker的配置可以在不同 环境中使用,降低了硬件要求和应用环境之间的耦合度.
2.代码的流水线管理.代码从开发者的假期到最终在生产环境上的部署,需要经过很多的中间环境.而每一个中间环境都有自己微小的蛤贝,Docker给应用提供一个从开发到上线均一致的环境,让代码的流水线变得简单.
3.提高开发效率
4.隔离应用,使应用松耦合
5.快速部署
docker [CMD] [options]
基本命令与释义
attach:进入到正在运行的容器
build:由Dockerfile构建镜像
commit:由容器的改变创建一个新的镜像
cp:在容器中复制文件或文件夹到本地文件或文件夹中.
logs:获取容器日志
network:管理Docker网络
node:管理Docker集群节点
pause:暂停一个或多个容器内的所有进程
port:列表端口映射或用于容器的特定的映射
ps:列出容器
pull:从镜像仓库中拉出镜像
push:上传镜像
rename:重命名镜像
restart:重启一个容器
rm :删除容器
rmi:删除镜像
run:在容器中运行命令
search:在Docker Hub中查找镜像
service:管理Docker服务
start:启动停止的容器
stats:显示容器的实时流资源使用统计信息
stop:停止正在运行的容器
swarm:管理Docker集群
tag:将镜像标记到存储库中
top:显示容器的正在运行的进程
volume:管理Docker卷
常用参数与释义(主要介绍docker run)
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name=”nginx-lb”: 为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h “mars”: 指定容器的hostname;
-e username=”ritchie”: 设置环境变量;
--env-file=[]: 从指定文件读入环境变量;
--cpuset=”0-2” or –cpuset=”0,1,2”: 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
--net=”bridge”: 指定容器的网络连接类型,支持 bridge/host/none/Container: 四种类型;
--link=[]: 添加链接到另一个容器;
--expose=[]: 开放一个端口或一组端口;
1.安装Docker
yum -y install docker-io
2.加入开机启动
chkconfig docker on
3.启动Docker
service docker start
4.下载镜像
docker pull elasticsearch:5.6.4
5.查看本地镜像
docker images
6.启动容器
docker run -p 9200:9200 --name es elasticsearch:5.6.4
运行容器,并命令行进入容器
docker run -i -t tomcat /bin/bash
7.查看容器
docker ps
搭建本地镜像仓库
仓库IP 192.168.247.142
1.拉取registry镜像
2.启动镜像仓库容器并且映射虚拟机端口5000和容器端口5000
3.将本地目录/opt/data/registry挂载到容器内目录/tmp/registry中
4.用busybox做试验
5.在需要拉取镜像的虚拟机上创建/etc/docker/daemon.json(这一步很关键,解决的http和https服务冲突问题)
6.向私有仓库中上传镜像
docker的网络配置
1.查看docker的所有网络
2.指定查看bridge网络的配置
3.启动两个busybox做实验,分别是container1和container2
4.再次查看bridge,这时可以看到container1和container2已经被加入bridge中了
5.也可以进入到container1中,用ifconfig查看网络配置
6.ping
7.
8.自建桥接模式的网络isolated_nw
9.查看网络能看到已经建立的isolated_nw
10.启动container3时指定网络isolated_nw,则可以加入自建网络中