软件测试:docker知识

前言:

      docker解决了什么?开发和运维之间以及其他任何环境之间的任何问题,能够一次性成型,到处运行。
      docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的linux机器上,也可以实现虚拟化。

概念:

      容器:使用镜像常见的应用或系统
      镜像:其实就是模板,跟我们常见的ISO镜像类似,是一个模板。
      仓库:存放镜像的地方,分为公开的仓库和私有的仓库。

下载安装:

1、执行脚本

curl -sSL https://get.daocloud.io/docker | sh
2、安装
yum install docker-ce -y
3、启动
systemctl start docker
4、测试
docker -v

使用

基本命令:

docker -v     #仅仅打印版本内容,v是version的缩写
docker info   #有客户端和服务端的各种信息展示
docker --help #直接docker就行

1、镜像命令
查看镜像:docker images # -a:列出本地所有镜像 -q:只显示镜像id
2、搜索(docker hub上)是否有要的镜像
docker search 要查找的名
3、拉镜像
docker pull 镜像名:版本 #一般不写版本就默认最新版本latest
4、删除镜像
docker rmi -f 镜像名
要删除多个就空格隔开(和linux的rm -rf 一样)

新建容器

docker run [option] IMAGE [command] [rds]
option:
      --name:“容器新名字”:为容器指定一个名称。
      -d:后台运行容器,并返回容器ID,也即启动守护式容器
      -i:以交互模式运行容器,通常与-t同时使用
      -t:为容器重新分配一个伪输入终端,通常与-i同时使用
      -P:随机端口映射
      -p:指定端口映射,有以下四种方法:
            ip:hostprot:container prot
            ip:containerPore
            hostprot:containerPore
            container pore
            

案例:

docker run -it --name centos_studey centos #新建一个容器centos_studey,将centos的镜像封装在里面
docker run -d --name tomcat_test -p 8081:8080 tomcat:8.5 #分配本机8081端口对应容器的8080端口。

进入正在运行的容器:
1、运用多
docker exec -it 容器id /bin/bash
2、运用少
docker attadr 容器id
两种方式的区别:
attach 直接进入容器启动命令的终端,不会启动新进程。
exec 在容器中打开新的终端,并且可以启动新进程。

退出容器:
exit 容器停止退出(不多)
ctr +q+p 容器不停止退出(多)
用于从容器内部切换到外部

列出当前正在进行的容器
docker ps 只展示正运行
docker ps -a 查看所有容器

容器启动/重启/停止、强行停止:
前提:已存在的容器
docker start/restart/stop 容器/id
强行停止
docker kill 容器/id

删除‘已停止’的容器
docker rm 容器/id
从容器内拷贝文件到主机上
docker cp 容器id:容器内的路程 主机目录
备份
docker commit -a=‘作者’ -m=‘描述’ 容器id 新的镜像名/名称:版本
验证:docker images

Docker容器做端口映射报错
docker: Error response from daemon: driver failed programming external connectivity on endpoint lamp3 (46b7917c940f7358948e55ec2df69a4dec2c6c7071b002bd374e8dbf0d40022c): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 86 -j DNAT --to-destination 172.17.0.2:80 ! -i docker0: iptables: No chain/target/match by that name.
解决方法
docker服务启动时定义的自定义链DOCKER被清除
重启即可systemctl restart docker

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值