DOCKER 笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DOCKER 笔记相关的知识,希望对你有一定的参考价值。

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

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

尽量选取满足需求但较小的基础系统镜像,建议选择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则在如下的几个方面进行了改进:

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

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

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

从官方源搜索镜像
docker search busybox

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

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

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

练习导入镜像

1、查看容器
docker ps

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

3、创建一个非交互的容器
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)

以上是关于DOCKER 笔记的主要内容,如果未能解决你的问题,请参考以下文章

Docker学习笔记-持续更新中

Docker 笔记

docker学习笔记1

十分钟了解Docker(我的Docker学习笔记)

docker笔记 配置镜像

docker学习笔记——创建私有库