Liunx 安装docker : yum install docker
镜像和容器的关系: 一个镜像产生(映射)多个容器
docker对测试能做什么?
**可以搭建测试环境
搭建各类基础环境
搭建测试执行环境**
docker 使用的关键技术
名称空间:Namespace (使用liunx的名称空间,如网络命令等可以隔离各个容器)
联合文件系统
Cgroups 隔离资源
docker常用命令
列出当前所有的镜像: docker images
筛选镜像: docker images|grep mysql
拉取镜像: docker pull 镜像名称(docker pull jenkins
)
打包镜像: docker save 容器名称 > 新包名称.tar
docker sava nginx > mynginx.tar
离线安装镜像:
docker load < 新包名称.tar
docker load < mynginx.tar
删除镜像:
docker rmi 镜像名称(或镜像全球唯一标识id)
docker rmi jenkins
(注意: 当镜像的存在实例化的容器时,镜像不能被删除)
删除容器:
docker rm -f 容器名 docker rm -f myjenkins
查询容器日志:
docker logs -f 容器名 docker logs myjenkins
查询容器详细信息:
docker inspect 容器名 docker inspect myjenkins
查询当前所有启动的容器:
docker ps
加-s 可以显示占用的空间
登录容器内部:
docker exec -it 容器名bash docker exec -it myjenkins bash
启动容器:
直接启动: docker run 镜像名称 docker run jenkins/jenkins
后台启动: docker run --name 起的容器名称 -d
-p 宿主端口号:容器端口号 镜像名称
docker run --name myjenkins -d -p 8099:8080 jenkins/jenkins
启动时,指定宿主机存放文件的路径(可以在容器销毁时,也保留之前的数据)
加入 -v 宿主机的目录:容器目录(绝对路径) docker run --name myjenkins -v /home/jenkins :soft
docker 四种网络类型 启动时通过 --network +模式名
bridge模式:
不写–net参数,就是bridge模式
会搭建一个网桥,容器的网卡会成对出现,一边在容器内部,一边在网桥中,通过网桥进行网络信息传递, ipv4/6_fordward 会进行网络转发,根据ip和端口号进行寻找 (使用iptables设置安全组)
iptables有四表五链(包含ipv4/6_fordward) ; 主要用NET表
host模式
绕过了docker的 bridge
不需要配置网络环境,直接使用宿主机的网络环境
container模式
容器间 可以通过loclhost 访问
docker run --name homes -itd -net-contatiner:第一个启动容器的名称
通常将后端服务使用contatiner模式启动
none模式
直接使用docker commit 创建镜像,为什么会越来越大?
因为修改镜像内容在是视图层修改的,没有作用到镜像层,只会多一个修改标识的文件,就算是使用删除,也只是多一个标识为删除的命令文件。