虚拟机技术缺点:

1.资源占用十分多。2.冗余步骤多。3.启动很慢。镜像(image):
  • docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,tomcat镜像==>==>run==>tomcat01容器(提供服务器),通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)。
容器(container):
  • Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的。
  • 启动,停止,删除,基本命令!
仓库(repository):
  • 仓库就是存放镜像的地方!
  • 仓库分为公有仓库和私有仓库!
  • Dockert Hub(默认是国外的
  • 阿里云....都有容器服务器(配置镜像加速!)


安装:如果之前安装过就先卸载:yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine然后安装:yum install -y yum-utils使用阿里云设置镜像仓库:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新yum软件包索引:

yum makecache fast

安装docker docker-ce 社区 ee 企业版

yum install docker-ce docker-ce-cli containerd.io安装后启动:systemctl start docker查看dockerdocker version

运行映像来验证 Docker 引擎是否已正确安装docker run hello-world


查看下载的hello-world镜像docker images了解:卸载docker1.先卸载依赖yum -y remove docker-ce docker-ce-cli containerd.io2.删除资源rm -rf /var/lib/docker (这是docker的默认工作径)rm -rf /var/lib/containerd


docker run:运行原理开始——》docker会在本机寻找镜像——》判断本机是否有这个镜像,如果有的话就使用这个镜像运行,没有就去docker Hub下载或者自己配置的源路径,如果找到了就下载到本地,找不到就返回错误,找不到镜像

底层原理:Docker是怎么工作的?
  • Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上,通过Socket从客户端访问!
  • DockerServer接收到Docker-Client的指令,就会执行这个命令!
Docker为什么比VM快?1.Docker有着比虚拟机更少的抽象层。2.docker利用的是宿主机的内核,VM需要是Guest OS(客户操作系统新建一个容器的时候docker不需要像虚拟机一样重新加载一个操作系统内核,避免引导,虚拟机是加载Guest OS,分钟级别的,而docker是利用宿主机的操作系统,省略了这个复杂的过程,秒级。docker的常用命令帮助命令:docker version#显示docker的版本信息docker info#显示docker的系统信息,包括镜像和容器的数量docker 命令--help#帮助命令
镜像命令:docker images查看所有本地主机上的镜像docker search 搜索镜像[root@localhost ~]# docker search mysqlNAMEDESCRIPTIONSTARSOFFICIALAUTOMATEDmysqlMySQL is a widely used, open-source relation…12213[OK]mariadbMariaDB Server is a high performing open sou…4689[OK]mysql/mysql-serverOptimized MySQL Server Docker images. Create…907[OK]perconaPercona Server is a fork of the MySQL relati…570[OK]phpmyadminphpMyAdmin - A web interface for MySQL and M…465[OK]#可选项,通过搜索来过滤--filter=STARS=3000(或者选择更高的收藏)[root@localhost ~]# docker search mysql --filter=STARS=3000NAMEDESCRIPTIONSTARSOFFICIALAUTOMATEDmysqlMySQL is a widely used, open-source relation…12213[OK]mariadbMariaDB Server is a high performing open sou…4689[OK]docker pull 下载镜像 [root@localhost ~]# docker pull mysqlUsing default tag: latestlatest: Pulling from library/mysql15115158dd02: Pull completed733f6778b18: Pull complete1cc7a6c74a04: Pull completec5049403458b: Pull completef360718d6f4e: Pull completeDigest: sha256:0eb33f0094ef5351639d9d9847c963ee9f22f5631cde046babd4ec239aaeaf06Status: Downloaded newer image for mysql:latestdocker.io/library/mysql:latest[root@localhost ~]#指定下载的版本:docker pull mysql:5.7[root@localhost ~]# docker pull mysql:5.75.7: Pulling from library/mysql15115158dd02: Already existsd733f6778b18: Already exists1cc7a6c74a04: Already existsc4364028a805: Already exists82887163f0f6: Already exists097bfae26e7a: Already existse1b044d6a24f: Already existsa924e739fa39: Pull complete6bd08908162d: Pull complete8a3523a22b20: Pull complete26bb314e3485: Pull completeDigest: sha256:5c6f1132190256d1ee63afc3bb383c890e8cb9f547bb1f8f15fecaa2a78e7de0Status: Downloaded newer image for mysql:5.7docker.io/library/mysql:5.7


docker rmi -f 删除镜像删除指定镜像 需要加上 IMAGE ID ,也可以指定多个IMAGE ID进行删除[root@localhost ~]# docker rmi -f 8b94b71dcc1eUntagged: mysql:5.7Untagged: mysql@sha256:5c6f1132190256d1ee63afc3bb383c890e8cb9f547bb1f8f15fecaa2a78e7de0Deleted: sha256:8b94b71dcc1ee6376ac16096e01b8d92ba885e7b9ae560426af2312cc17fe0f7Deleted: sha256:408f836eb7a93bc3d9c70e370d33b9f540a0268d5e62c0b03421e21b23f95db3Deleted: sha256:953a57b56a8704ad086b5c0e04da7359fe953736f806fa4e0ef3c57b0bbe79d2Deleted: sha256:8914c179eb4f282cb4a0dd50a458bd70aa80fc14d1a1aeb819f3a26a0e2ddccaDeleted: sha256:31f2499802115dd72a026fb9ff18f0a161c8bb0447b673915c52299ef27ba35ddocker rmi -f $(docker imager -aq) 递归删除全部容器[root@localhost ~]# docker rmi -f $(docker images -aq)Untagged: mysql:latestUntagged: mysql@sha256:0eb33f0094ef5351639d9d9847c963ee9f22f5631cde046babd4ec239aaeaf06Deleted: sha256:c1558761f285add928a651173d5e903c7bf2cd5d511d0bd6752fb082c41b56a2Deleted: sha256:1672f9ae83223867a389506098073d942b265e1713b5bca850a606c1880911dfDeleted: sha256:40b682fb6532a32ec278912cc85ad940510eae0eb8c3e81370ca203c25684f51Deleted: sha256:2537872e2e84bcf00ce65149e08839856c7d6d0cdcef2b841e7eced02e3f6d24再次查看 全部镜像删除了[root@localhost ~]# docker imagesREPOSITORYTAGIMAGE IDCREATEDSIZE[root@localhost ~]#容器命令说明:我们有了镜像才可以创建容器,Linuxdocker pull centos新建容器并启动新建容器,并进入[root@localhost ~]# docker run -it centos /bin/bash[root@c29252f4d995 /]# ls 查看容器内的centos,基础版本,很多命令都是不完善的binetcliblost+foundmntprocrunsrvtmpvardevhomelib64mediaoptrootsbinsysusr
从容器中退回到主机[root@c29252f4d995 /]# exitexit[root@localhost ~]# ^C[root@localhost ~]# lsanaconda-ks.cfggyq123scriptsa.txtinitial-setup-ks.cfgtemgyqb.txtMusictemgyq1Desktopmysql57-community-release-el7-10.noarch.rpmTemplatesDocumentsPicturestestDownloadsping03.shVideosgyqping05.shgyq1Public[root@localhost ~]#列出所有的运行的容器docker ps 列出当前正在运行的容器 -a 加上-a参数 列出正在运行的容器+带出历史运行时的容器 -n=? #显示最近创建的容器 -q #只显示容器的编号[root@localhost ~]# docker psCONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMES[root@localhost ~]# docker ps -aCONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMESc29252f4d995centos"/bin/bash"18 minutes agoExited (130) 2 minutes agoreverent_lewin2066ae3c7a82feb5d9fea6a5"/hello"4 hours agoExited (0) 4 hours agopriceless_davinci[root@localhost ~]#退出容器exit #容器直接停止并推出Ctrl +P+Q #容器不停止退出删除容器docker rm 容器删除指定容器,不能删除正在运行的容器,如果要强制删除 rm -fdocker rm -f $(docker ps -aq)#删除所有的容器docker ps -a -q|xargs docker rm #删除所有的容器启动和停止容器的操作docker start容器ID#启动容器docker restart容器ID#重启容器docker stop 容器ID#强制停止当前容器


微信公众号:黑马金牌编程个人网站:http://www.heimajinpai.cn/wordpress/





更多相关文章

  1. Mac 完全卸载 Android(安卓)Studio
  2. Android桌面快捷方式的实现
  3. android 中 CheckBox 复选框操作
  4. android 中Spinner与dialog的综合应用
  5. mac 彻底删除android studio
  6. Mac 完全卸载 Android(安卓)Studio
  7. Gradle sync failed: com.android.tools.idea.gradle.project.mo
  8. android EditText 只能输入无法删除的解决方法
  9. Android(安卓)studio 编译失败Error:Could not read entry ':app

随机推荐

  1. Android笔记二十三.Android基于事件监听
  2. Bitmap and DrawPoint
  3. Android笔试(一)
  4. Android 学习笔记1:基本架构
  5. Android开发入门教程1-初试Android
  6. js判断浏览器所在的客户端类型
  7. Android解析服务器端发来的xml数据示例
  8. Android Adapter详解(1)
  9. Android绘图之2D绘图基础
  10. android面试题总结