Docker原理及常用命令

docker概述

docker为什么出现

一款产品:开发->上线 需要环境部署和应用配置,会出现本地运行没问题上线有问题,版本更新导致发布有问题

发布项目:以前发布一个jar(需要redis,es,Hadoop等环境),不能跨平台,那么项目能不能带着环境打包。

docker针对以上问题提出了解决方案

一个app项目:java开发->打包成apk->发布到应用商店->下载安装即可

java开发->jar(加环境)->打包项目带上环境(镜像)->发布docker仓库(类似商店)->下载安装即可

docker的思想来自于集装箱

隔离:docker的核心思想,打包装箱,每个箱子相互隔离

docker能干嘛

虚拟机技术

缺点:1.资源占用多,2.冗余步骤多,3.启动慢

容器化技术

比较docker和虚拟机的不同

  • 传统虚拟机,虚拟出一套硬件,运行一个完整的操作系统,在这个操作系统上安装运行软件
  • 容器内的应用直接运行在宿主机的内核,容器没有自己的内核也没有虚拟我们的硬件,轻便
  • 每个容器间是相互隔离的,互不影响

docker安装

docker的基本组成

镜像(image):好比一个模板,可以通过这个模板来创建容器服务。比如tomcat镜像->run->tomcat1容器

通过镜像可以创建多个容器服务,最终的项目运行就是在容器中

容器(container):docker利用容器技术可独立运行一个或一组应用,通过镜像创建。可将容器理解为一个简易的linux系统

仓库(repository):存放镜像的地方

配置镜像加速

安装

安装环境

系统内核3.10以上centos(uname -r命令查看)

安装步骤(来自帮助文档)

  • 卸载旧版本: yum remove docker 
  • 需要的安装包:yum install  -y yum-utils
  • 设置镜像仓库,阿里云仓库
  • 安装docker相关的引擎   docker-ce社区版  ee企业版

             yum install docker-ce docker-ce -cli containerd.io

  • 开机自启动docker          systemctl start docker
  • 检查docker是否安装成功   docker version
  •  运行docker        docker run hello-word

  • 查看下载的hello-word镜像是否存在   docker images
  • 卸载docker    1.yum remove docker-ce docker-ce -cli containerd.io,2.rm -rf /var/lib/docker(docker的默认工作路径)

阿里云镜像加速

1.登录阿里云服务器,找到容器服务

2.找到镜像加速地址

3.配置使用

docker run的流程和docker原理

run的流程原理

底层原理

docker是怎么工作的?

docker是一个client-sever结构的系统,docker的守护进程运行在一个主机上,通过socket从客户端访问,dockerserver接收到dockerclient的指令,就会执行指令

DOCKER的常用命令

https://docs.docker.com/reference/

帮助命令

        docker version  #docker的版本信息

        docker info    #docker的系统信息,包括镜像和容器的数量

        docker --help   #查看docker的常用命令

镜像命令

查看命令

 docker images   #查看本机上所有的镜像

docker images --help #获取docker镜像的帮助命令

下载镜像

docker pull mysql[:tag]  下载MySQL镜像(默认下载最新版本,可通过tag指定版本)

删除镜像

docker rmi -f 镜像id

docker rmi -f  ${docker images -a}

容器命令

有了镜像才可以创建容器

docker pull centos    #下载一个centos的镜像

新建容器并启动

docker run [可选参数]  image

#参数说明

--name="name"   容器名字,Tomcat1 Tomcat2

-d    后台方式运行

-it  交互运行方式启动

常见的坑

  • 后台运行docker

docker run -d 镜像名(centos)后台运行一个docker时,使用docker ps时发现centos停止了。容器启动后发现没有提供服务,就会自己停止,就没有程序了

  • 查看日志

docker  -tf  tail 10 镜像id    :显示日志

列出所有运行的容器

docker ps  #正在运行的容器

docker ps  -a   #历史运行过容器

退出容器

exit   #容器停止并退出

ctrl+P+q   #容器不停止退出

删除容器

docker  rm 容器id   #删除指定容器,不能删除正在运行的容器

docker  rm  -f ${docker ps -aq }  #删除所有容器

docker ps -a -q|xargs docker rm    #删除所有容器

进入当前正在运行的容器,两种方式

1.docker exec -it 容器id  /bin/bash-->进入容器后开起一个新的终端,可以在里面操作

2.docker attach 容器id   /bin/bash-->进入容器正在执行的终端,不会启动新的进程

从容器内拷贝文件到主机

docker cp 容器id:容器内路径  目的的主机路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值