一、介绍

docker是通过内核虚拟化技术(namespace和cgroups)来实现容器的资源隔离和资源限制。由于docker是通过操作系统层的虚拟化来实现隔离,所以对系统内核有一定要求,并且docker容器在运行时不需要额外的系统资源开销,比kvm虚拟机更轻量。

docker主要目标:构建,运输,处处运行。只要能运行docker容器,那么docker镜像中的软件也可以运行。

构建:制作docker镜像,打包容器的所有系统目录文件。

运输:下载docker镜像

运行:基于docker镜像提供的rootfs,启动容器。

优点:

解决了操作系统和软件运行环境的依赖;

开发人员不用担心不会部署环境;

开发环境,测试环境,生产环境高度一致;

让用户体验产品新特性的右一种思路。

 

二、安装

docker安装及安装验证

镜像:是一个系统的制度模板,例如一个微型的centos系统镜像

容器:容器进程,应用程序封装在容器中运行,相互隔离

仓库:存储镜像的一个仓库地址,便于他人共享镜像文件的一个地方。

三、启动一个容器

sudo docker container run hello-world

docker使用_centos

四、docker容器、镜像的增删改查

1、增

从dockerhub仓库中获取docker镜像,从github获取代码的原理一样

例如,docker pull centos 去docker仓库中寻找centos系统镜像。

2、查找

(1)查看本地机器中所有的镜像文件

docker images

(2)查看docker正在运行的容器进程

docker ps

(3)查看所有正在运行或者挂掉的进程

docker ps -a

(4)查看容器进程内运行情况

docker logs <容器id>

docker log -f <容器id>    实时刷新容器内的日志

(5)查看容器内的端口转发情况

docker port <容器id>

 

3、改

(1)运行一个docker容器实例,运行镜像文件,产生容器进程

docker run  <镜像文件名字> 例如docker run centos

 

(2)交互式的运行一个存活的docker容器

-i  是交互式的命令操作,-t  是开启一个终端, /bin/bash 指定shell解释器

docker run -it centos /bin/bash

 

(3)运行一个活着的容器

-d  让容器后台运行

-c  指定一段shell代码

--name 指定容器进程的名字

docker run --name “dzw” -d centos /bin/bash -c "while true; do echo hello centos; sleep 1; done"

 

(4)进入一个正在运行的容器

docker exec -it 153 /bin/bash

4、删除

docker rm <容器进程id>  删除容器进程

docker rmi <镜像id> 删除镜像,必须先删除有相关依赖的容器进程记录

 

批量删除无用的docker记录

docker rm ‘docker ps -aq’

批量删除镜像

docker rmi ‘docker images -aq’

批量停止容器

docker stop ‘docker ps -aq’

 

五、提交创建自定义的镜像

1、进入交互式的ubuntu容器中,发现没有vim命令

docker run -it ubuntu

2、在当前容器中安装vim

换源

备份源
mv /etc/apt/sources.list /etc/apt/sources.list.bak
写入源
 echo "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >/etc/apt/sources.list
 
 echo "deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
 
 echo "deb-src http://mirrors.163.com/debian/ jessie main non-free contrib" >>/etc/apt/sources.list
 
 echo "deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
 
更新软件库 
apt-get update
 
安装vim 
apt-get install vim
 
3、退出容器
exit
4、查看安装vim的docker容器记录
docker container ls -a
5、提交这个容器,创建新的image
docker commit <容器id> <镜像的名字>
6、到处镜像到本地文件
docker save <镜像id> > /opt/ubuntu.tar.gz
7、导入本地镜像
docker load < /opt/ubuntu.tar.gz
8、如果没有镜像名,则命名
docker tag <镜像id> 镜像名