docker让测试变得敏捷
docker简介docker则类似于船舶,可以装卸集装箱;容器类似于集装箱,在码头上把各式各样的物品装进集装箱中,方便了物品的装卸;至于镜像,可以把它先想象为一个运输单,里面列出本次运输货物的货物名称和数量。docker:在没有docker之前,我们需要手动创建容器,这个过程也是容易出错的,而docker可以帮助我们把容器启动自动化,进一步简化了环境部署和配置的过程。当然这种自动化依赖于镜像,do
docker简介
docker则类似于船舶,可以装卸集装箱;
容器类似于集装箱,在码头上把各式各样的物品装进集装箱中,方便了物品的装卸;
至于镜像,可以把它先想象为一个运输单,里面列出本次运输货物的货物名称和数量。
docker:
在没有docker之前,我们需要手动创建容器,这个过程也是容易出错的,而docker可以帮助我们把容器启动自动化,进一步简化了环境部署和配置的过程。当然这种自动化依赖于镜像,docker还提供了镜像的注册服务,方便了镜像的共享和分发。
容器:
一台机器上运行的多个容器之间是隔离的,容器技术本身提供隔离。容器不是虚拟化,但是它具备虚拟化的功能。虚拟化是在硬件隔离,容器是共享系统内核,在软件上隔离。容器的启动比虚拟机要快得多
安装
基于centos安装docker:
1.安装所需的软件包
yum install -y yum-utils
device-mapper-persistent-data
lvm2
2.使用以下命令来设置稳定的仓库
yum-config-manager
–add-repo
https://download.docker.com/linux/centos/docker-ce.repo
3.安装
yum install docker-ce docker-ce-cli containerd.io
4.docker Hub镜像加速器
vim /etc/docker/daemon.json
{"registry-mirrors":
["https://r3u6ty4i.mirror.aliyuncs.com","https://mirror.baidubce.com"],
"log-driver":"json-file",
"log-opts": {"max-size":"500m", "max-file":"3"}
}
5.启动
systemctl start docker
systemctl enable docker 开机启动
容器的使用
1.启动docker:
service docker reload
service docker start
2.容器下载:docker pull centos
3.容器进程查找:docker ps -a
4.启动/杀死进程:docker start/stop+id
5.进入容器:docker exec -it id /bin/bash
6.导出容器:docker export id > name.tar
7.导入容器快照:cat name.tar | docker import - images_name:tag
8.删除容器:docker rm -f id
镜像的使用
1.镜像查找:docker images
2.删除镜像:docker rmi tomcat2:v1
3.镜像的获取:docker pull ubuntu:13.10
4.文件拷贝:
docker—容器:docker cp 文件路径 容器id:路径
将war包放进tomcat目录下:
docker cp EHL_SM.war 601c90f8aa4c:/usr/local/tomcat/webapps/
5.更新镜像:
1).例如:进入Tomcat新建一个文档
2).使用 apt-get update 命令进行更新;在完成操作之后,输入 exit 命令来退出(centos可省略此步骤)
3).提交更新 docker commit -m=“update” -a=“zhm” 1ed98f8c362d tomcat3:3.0
4).查看:docker images
端口与网络通信
1.网络端口映射:docker run -d -p 5000:5000(-p指定端口)
2.桥接网络实现容器之间的通信:
1)创建一个test网络:docker network create -d bridge test
2)容器连接:
docker run -it --name tomcat --network test tomcat /bin/bash
docker run -it --name tomcat1 --network test tomcat1 /bin/bash
3)Ping tomcat:ping tomcat
3.启动项目
启动: docker run --net host -it uganda:v2.0 /bin/bash
docker start 5eb5f2e14a6c
这样能够实现本地环境与docker容器之间进行通信;
若采取端口通信,会出现ip跳转的错误。
4.配置dns:在宿主机的 /etc/docker/daemon.json 文件中增加以下内容来设置全部容器的 DNS
{
"dns" : [
"114.114.114.114",
"8.8.8.8"
]}
重启:/etc/init.d/docker restart
检查:docker run -it --rm ubuntu tomcat1 etc/resolv.conf
nameserver 114.114.114.114
nameserver 8.8.8.8
镜像仓库
1.镜像仓库的使用
镜像的提交
docker tag pnginx:latest 10.2.215.53:5000/pnginx
docker push 10.2.215.53:5000/pnginx
镜像的获取
docker pull 10.2.215.53:5000/pnginx
持续集成与自动化部署
基础环境:jenkins docker 仓库
自动化的部署的操作流程:
1.创建 docker 私有仓库(也可以使用公有仓库)
2.dockerfile 创建系统镜像
3.删除已运行容器
4.运行新容器
5.将新镜像 push 到私有或公有仓库
docker build -t xxx /xxx/xxx/ #根据dockerfile生成镜像
docker ps
docker stop xxx
docker rm xxx
docker run -d -p port:port --name xxx xxx #运行镜像生成容器
docker push ip:port/镜像名称 #填自己私有仓库的ip和端口
更多推荐
所有评论(0)