docker 是使用go语言开发的,开源应用容器引擎!它的主要作用就是来运行容器的! 盒子!! 我们可以把一些应用或者环境打包在一个容器中,然后在安装了docker的服务器上都可以直接运行这个容器!然后直接访问!
例如 我们把wordpress这个php应用直接打包在一个容器中! 只要我们的服务器上安装了docker就可以直接运行这个容器, 然后就可以直接访问到这个容器里面的wordpress! 而我们运行容器我们只需要一个命令!这让我们可以快速的部署一些 复杂的应用或者环境!
镜像:作用是用来创建容器的 容器:可以迁移,轻量级,以镜像的形式迁移的 仓库:存放镜像的,私有仓库,harbor私有镜像,定制的镜像
启动速度: 虚拟机开机时间:2分钟 容器开启时间:秒级别
磁盘的占用: 虚拟机:3-4G 容器:兆级别
性能: 虚拟机:弱于原生 容器:几乎接近与原生的性能
虚拟机里面安装的操作系统是完整的,拥有自己的系统内核 容器内部你可以理解为是一个精简的linux系统,他没有自己的内核
常用的命令: 镜像: 下载镜像: docker pull 镜像名 搜索镜像: docker search 镜像名 上传镜像: docker push 服务器地址/镜像名:tag 查看本地镜像:docker images
删除一个或多个镜像 docker rmi [-f] 镜像名字/镜像ID 给镜像添加一个新的tag docker tag 旧镜像名:tag 新名
容器运行有两种方式: 前台运行容器 后台运行容器(主要运行方式) 1.docker create 创建容器 用的比较少 2.开启容器:docker start 容器名/容器的ID 3.关闭容器:docker stop 容器名/容器的ID 4.重启容器: docker restart 容器名/容器的ID 5.创建并运行一个容器,主要的创建容器的方式 docker run --name 容器名 -d -p 80:80 nginx –name 新容器的名字 (必须是惟一的) -d 后台运行容器 -p 端口映射 查看正在运行的容器:docker ps 查看所有的容器(运行和停止) docker ps -a docker ps -qa 只显示所有容器的ID 查看容器或镜像的元数据 docker inpsect 容器名 这里可以看到容器的ip地址,网关,挂载的数据卷,执行的命令等等信息
删除一个或多个容器 docker rm 容器名/容器ID docker rm -f 容器名/容器ID 删除所有已经停止的容器: docker rm $(docker ps -qa) 删除所有的容器 docker rm -f $(docker ps -qa) 进入容器内部 docker exec -it 容器名 bash
docker 镜像的导出和导入
docker save -o 文件名.tar 镜像名:tag docker load -i 文件名.tar
例子: 导出 nginx 镜像 docker save -o nginx.tar nginx 可以压缩一下: tar zcf nginx.tar.gz nginx.tar
导入: 上传nginx.tar.gz 解压: tar xzf nginx.tar.gz
挂起一个容器
docker pause web1
取消挂起容器 docker unpause web1
动态查看容器对CPU内存,网络的使用情况 docker stats 查看一个容器的日志 docker logs 给容器重命名 docker rename 旧容器名 新容器名
–在一个正在运行的容器中执行一条命令 docker exec [选项] 容器名 要执行的命令