DOCKER 笔记

1、docker的意义
2.1.程序在我这跑得好好的,在你那怎么就不行呢?! 这是一个典型的应用场景,Docker image中包含了程序须要的全部的运行时依赖,好比java的程序,确定要在image中包含jdk;好比Python的程序,确定要在image中包含对应版本的Python解释器。程序在我这跑得好好的,去你那就不行了,显然是环境问题。Docker把整个运行时环境打包放到image中,因此搞定了环境依赖问题!
:Docker解决了运行环境和配置问题,方便发布,也就方便作持续集成。代码 + 运行环境 + 配置 + 依赖的服务,Docker image中包含了运行环境+配置,这对部署至关友好
2.更轻量的虚拟化,节省了虚拟机的性能损耗
3.构建Docker镜像应该遵循哪些原则?java

总体远侧上,尽可能保持镜像功能的明确和内容的精简,要点包括: linux

尽可能选取知足需求但较小的基础系统镜像,建议选择debian:wheezy镜像,仅有86MB大小

清理编译生成文件、安装包的缓存等临时文件

安装各个软件时候要指定准确的版本号,并避免引入不须要的依赖

从安全的角度考虑,应用尽可能使用系统的库和依赖

使用Dockerfile建立镜像时候要添加.dockerignore文件或使用干净的工做目录

4.如何控制容器占用系统资源(CPU,内存)的份额
在使用docker create命令建立容器或使用docker run 建立并运行容器的时候,能够使用-c|–cpu-shares[=0]参数来调整同期使用CPU的权重,使用-m|–memory参数来调整容器使用内存的大小。
5.Docker的默认存放位置是/var/lib/docker,若是但愿将Docker的本地文件存储到其余分区,能够使用Linux软链接的方式来作。
6.Docker的配置文件放在那里。如何修改配置
Ubuntu系统下Docker的配置文件是/etc/default/docker,CentOS系统配置文件存放在/etc/sysconfig/docker
7.Docker与LXC(Linux Container)有何不一样
LXC利用Linux上相关技术实现容器,Docker则在以下的几个方面进行了改进:nginx

移植性:经过抽象容器配置,容器能够实现一个平台移植到另外一个平台;
镜像系统:基于AUFS的镜像系统为容器的分发带来了不少的便利,同时共同的镜像层只须要存储一份,实现高效率的存储;
版本管理:相似于GIT的版本管理理念,用户能够更方面的建立、管理镜像文件;
仓库系统:仓库系统大大下降了镜像的分发和管理的成本;
周边工具:各类现有的工具(配置管理、云平台)对Docker的支持,以及基于Docker的Pass、CI等系统,让Docker的应用更加方便和多
2、docker 的常规命令
安装 docker
yum clean all
yum install -y docker-engine docker-engine-selinuxdocker

设置开机启动,启动 docker 服务
systemctl enable docker
systemctl start dockercentos

系统刚刚配置完是没有镜像的
查看系统镜像
docker images缓存

从官方源搜索镜像
docker search busybox安全

下载镜像
docker pull busybox
网上直接下载镜像
上传镜像
docker push busyboxbash

把本地的镜像备份为 tar 包
docker save busybox(已经存在的镜像名) >busybox.taride

把备份的tar包导入到本机镜像
docker load <busybox.tar工具

练习导入镜像

一、查看容器
docker ps

二、建立一个 bash 交互的容器
docker run -it centos /bin/bash

三、建立一个非交互的容器
docker run nginx
docker run -itd centos /bin/bash

查看镜像列表
docker images

查看镜像制做历史docker history busybox

查看镜像底层信息

docker inspect busybox

下载镜像docker pull busybox

上传镜像docker push

删除本地镜像docker rmi busybox

镜像另存为tar包docker save busybox >busybox.tar
使用tar包导入镜像
docker load <busybox.tar

搜索镜像

docker search busybox

修改镜像名称和标签

docker tag busybox:latest busybox:v1

容器相关命令

以交互模式启动一个容器
docker run -it centos bash

启动的容器放在后台
docker run -itd centos bash

显示正在运行的容器
docker ps

显示全部容器
docker ps -a

显示全部容器,但只显示 id
docker ps -aq

启动,中止,重启容器
docker start|stop|restart 容器id

进入容器
docker exec -it 容器id /bin/bash

链接容器 console,exit 退出会致使容器关闭,能够使用 CTRL +(p,q) 退出
docker attach 容器id

显示容器详细信息
docker inspect 容器id

查看容器内运行的进程
docker top 容器id

删除容器
docker rm 容器id

关闭全部容器docker stop $(docker ps -aq)docker rm $(docker ps -aq)

相关文章
相关标签/搜索