Docker介绍与安装使用(一)
docker是一个基于LXC容器技术的管理工具,提供一系列更强的功能,如可移植性(定义了标准,可以在任意主机运行)、自动化构建(dockerfile)、版本控制、镜像管理等。
docker提供应用程序的自动化部署解决方案,能够迅速创建一个容器,并在容器上部署和运行应用程序,通过配置文件(Dockerfile)可以轻松实现应用程序的自动化安装、部署和升级。
Docker优点?
1.轻量级资源,容器是在进程级别隔离,并使用宿主机的内核,而不需要虚拟化整个操作系统。不需要虚拟化和系统调用复杂的操作。因此节省了很大的额外开销。不需要额外的hypervisor(虚拟化技术)支持,不需要虚拟硬件,不需要额外完整的系统。
2.可移植性,所需要的应用都在容器中,可以在任意一台docker主机上运行
3.可预测性,宿主机和容器相互不关心对方都运行什么。只考虑所需的接口标准化。
相关组件及功能?
1.lxc,Linux Container的简写,lxc是一种内核虚拟化技术,与宿主机共享内核,用namespace和cgroup实现资源隔离。lxc是linux内核一个特性,它允许进程或进程组运行在一块独立的空间,并能对其控制。并实现容器与宿主机资源共享。
2.cgroup,lxc是cgroup的管理工具。限制进程或进程组使用的系统资源管理。提供类似文件的接口,非常方便配置。
3.namespace,cgroup是namespace的用户空间的管理接口。并对进程或进程组之间隔离,如果net、mnt、pid、user等。
4.aufs(AnotherUnionFS),支持将不同目录挂载到同一个虚拟文件系统。docker容器分为只读的镜像层与上面可写层,AUFS实现在可写层上进行增量的修改(增量文件系统)。
在docker中,只读层及在顶部的读写层的组合被称为Union File System,UFS(联合文件系统),目前支持的联合文件系统种类包括 AUFS、btrfs、vfs和DeviceMapper。
5.chroot,使容器运行在指定的目录内。
组件之间关系?
cgroup是在底层实现资源管理,lxc在cgroup上封装了一层,docker又在lxc封装了一层。
工作方式?
当我们启动一个docker容器时,docker会加载只读镜像,并在其上添加一个读写层(将镜像目录复制一份到/var/lib/docker/aufs/mnt以ID为目录下,我们可以使用chroot进入此目录,与容器里面的目录一样)。如果运行中的容器修改现有的一个已经存在的文件,那该文件将会从读写层下面的只读层复制到读写层,该文件的只读版本仍然存在,只是已经被读写层中的该文件的副本所隐藏,当删除docker容器,并通过该镜像重新启动时,之前的更改将会丢失。
博客地址:http://lizhenliang.blog.51cto.com
Docker安装与使用:
操作系统:Ubuntu14.04_x64
1、添加秘钥
$ sudo apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
2、添加docker源
$ sudo vi /etc/apt/sources.list.d/docker.list
# Ubuntu Precise
deb https://apt.dockerproject.org/repo ubuntu-precise main
# Ubuntu Trusty
deb https://apt.dockerproject.org/repo ubuntu-trusty main
# Ubuntu Vivid
deb https://apt.dockerproject.org/repo ubuntu-vivid main
# Ubuntu Wily
deb https://apt.dockerproject.org/repo ubuntu-wily main
注意:通过命令lsb_release -c查看上面对应的版本,不要都添加上
3、更新索引
$ sudo apt-get update
4、安装docker
$ sudo apt-get install docker-engine
5、下载Ubuntu镜像
#默认下载最新版
$ sudo docker pull ubuntu
#如果想下载14.04版本的,可以这样指定
$ sudo docker pull ubuntu:14.04
6、在镜像里打印hello
$ sudo docker run ubuntu /bin/echo hello
打印出hello说明你已经成功安装docker并启动一个容器!
7、熟悉下常用命令
#查看docker环境信息
$ sudo docker version
# sudo docker -D info
#在仓库中搜索相关的镜像
$ sudo docker search centos
#查看已下载的镜像
$ sudo docker images
#启动镜像并进入容器
$ sudo docker run -itd --name=ubuntu ubuntu
run命令选项:
-t 模拟一个终端,-i进入这个容器,一般结合使用创建一个交互式容器。
-d 后台运行容器并打印ID,如果不加-i后面就不能附加进入容器
--name 为容器指定名称
run命令选项很多,先不过多介绍,在使用中你会慢慢了解到!
此时你已经创建并进入容器,怎么能退出呢?
# 按ctrl+d退出容器,会暂停容器,可以再启动(sudo docker start ID/NAME),里面数据不会丢失。
# 退出暂停容器太不符合常理啊!那么按ctrl+p+q退出docker,将不会暂停
#紧接查看运行的容器
$ sudo docker ps
#这时想进入某个容器可通过ps查看的ID进入运行的容器
$ sudo docker attach ID/NAME
#关闭运行的容器(start/restart)
$ sudo docker stop ID
#关闭所有运行的容器
$ sudo docker kill $(sudo docker ps -q) #-q只显示ID
#删除一个容器
$ sudo docker rm ID/NAME
#删除所有容器
$ sudo docker rm $(sudo docker ps -q)
#删除一个镜像
$ sudo docker rmi ID
#查看Docker操作日志
$ sudo docker ps -a
#查看容器日志
$ sudo docker logs ID/NAME
#查看容器配置详细信息
$ sudo docker inspect ID
此时,会返回一个json格式信息,我们可以获取指定的信息,比如获取IP地址:
$ sudo docker inspect -f {{.NetworkSettings.IPAddress}} ID
#列出容器内容文件状态变化情况
$ sudo docker diff ID
注:A - Add,D - Delet , C - Change
#查看容器资源使用情况
$ sudo docker stats
#免交互执行命令
$ sudo docker exec ID/NAME command
通过这篇博文,你已经对docker初步认识,可以很轻松的来管理容器了!
后续紧接会更新docker进阶内容,欢迎关注,谢谢支持!
Docker基础组件、安装启动和Docker生命周期 Docker安装部署 Docker引擎 运行镜像生成容器。应用程序跑在容器中 Docker Daemon 安装使用Docker,得先运行Docker Daemon进程,用于管理Docker,如: - 镜像 images - 容器 containers - 网络 network - 数据卷 Data Volumes
docker安装和常用命令 docker 虚拟化,不是在在物理机上再去安装一个系统,而是直接启动应用级别的程序,例如启动三个tomcat,三个容器 ,对外访问后面讲解 镜像:docker的镜像其实就是模板,跟我们常见的iso镜像类似,上一个样板 容器:使用镜像常见的应用或者系统,我们称之为容器,应用的话就是tomcat nginx centos系统 都可以叫容器,容器就是一个应用, 仓库:仓库是存放镜像的地方,分为公开
李振良 6年互联网运维经验,擅长Linux,Python,Docker,MySQL,运维自动化等技术领域。
相关文章
- Docker数据目录相关操作
- 【Docker】docker安装GitLab
- Docker+Jenkins持续集成环境(2)使用docker+jenkins构建nodejs前端项目
- Docker - 构建镜像:使用docker commit命令
- Docker版本Jenkins的安装
- centos7.6下使用Docker安装Elasticsearch8.2.0 测试三
- Ubuntu21.04 Docker 安装
- 【网址收藏】win10环境下安装Docker、Windows安装docker
- 【收藏】win10利用WSL2安装docker的2种方式
- Docker-compose 安装 zookeeper dubbo-admin
- 001-docker-net-网络设置分类、Bridge详解、mac docker说明
- 【云原生之Docker实战】安装docker镜像分析工具Dive
- mac docker 安装 kali linux
- Linux 下的 Docker 安装与使用
- Docker重学系列之docker可视化工具
- Docker学习笔记14:docker使用之Machine
- 【Docker系列】2.Linux 安装docker+docker-compose