Linux上安装Docker

本文介绍了Docker这一开源应用容器引擎,对比了虚拟机和Docker的区别,指出Docker具有交付部署快、迁移扩展轻松、资源利用率高等优势。还阐述了镜像、容器、仓库等核心概念,讲解了在Linux上安装Docker的步骤,以及加速镜像的方法,并列举了常用命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概念

  • Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。
  • 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
  • Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。
  • Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。

虚拟机和docker的区别

  • 虚拟机:虚拟机都需要有自己的操作系统,虚拟机一旦被开启,预分配给它的资源将全部被占用。每一台虚拟机包括应用,必要的二进制和库,以及一个完整的用户操作系统。
  • docker:容器技术是和我们的宿主机共享硬件资源及操作系统,可以实现资源的动态分配
  • 传统虚拟机方式运行 10 个不同的应用就要起 10 个虚拟机,而Docker 只需要启动 10 个隔离的应用即可。
  • 与虚拟机相比,Docker 隔离性更弱。Docker 属于进程之间的隔离,虚拟机可实现系统级别隔离

优势

  • 更快速的交付和部署:开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。
  • 更轻松的迁移和扩展:Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。
  • 一个镜像到处部署
  • 更高的资源利用率

镜像、容器、仓库核心概念

镜像(image)

镜像是只读的,镜像中包含有需要运行的文件。镜像用来创建container,一个镜像可以运行多个container;镜像可以通过Dockerfile创建,也可以从Docker hub/registry上下载。

容器(container)

容器是Docker的运行组件,启动一个镜像就是一个容器,容器是一个隔离环境,多个容器之间不会相互影响,保证容器中的程序运行在一个相对安全的环境中

仓库 Docker hub/registry

共享和管理Docker镜像,用户可以上传或者下载上面的镜像,官方地址为 https://registry.hub.docker.com/,也可以搭建自己私有的Docker registry。

镜像就相当于打包好的版本镜像启动之后运行在容器中仓库就是装存储镜像的地方

安装docker

  • 下载安装包
yum install docker
  • 启动、重启
service docker start|restart
  • 设置为开机启动
chkconfig docker on
  • 测试是否安装
docker version
  • 加速docker镜像

国内连接 Docker 的官方仓库很慢,因此我们在日常使用中会使用Docker 中国加速器。编辑vi /etc/docker/daemon.json问价,添加如下配置:

{
"registry-mirrors":["https://registry.docker-cn.com"],
"live-restore":true
}

常用命令

docker上有许多命令,这里主要写下几个重要的命令。

  • 查看宿主机上的镜像,Docker镜像保存在/var/lib/docker目录下
docker images
  • 拉取镜像
docker pull image_name  //image_name 为镜像名称
  • 删除镜像
docker rmi docker.io/tomcat:7.0.77-jre7 
或者 
docker rmi b39c68b7af30   //b39c68b7af30 为镜像ID

想要删除untagged images,也就是那些id为<None>的image的话可以用
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")  

要删除全部image的话
docker rmi $(docker images -q)
  • 查看正在运行的容器
docker ps
  • 查看所有的容器
docker ps -a
  • 启动容器
docker run -d -p 8081:8080 springboot-demo

docker run --name=con_name images
  • 重启容器
docker restart container_name/container_id
  • 停止容器
docker stop container_name/container_id
  • 删除容器的命令
docker rm container_name/container_id
  • 看容器的端口映射情况
docker port con_id
  • 动态查看容器日志
docker logs -f con_name  //con_name  为容器名称
  • 进入容器
docker attach con_name

参考资料

https://www.cnblogs.com/shamo89/p/9201513.html
https://blog.youkuaiyun.com/anxpp/article/details/73478883
https://www.jsdaima.com/blog/177.html
http://adrai.github.io/flowchart.js/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值