刚刚接触到docker的同事可能会一头雾水,docker到底是一个什么东西,先看看官方的定义。
Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。
根据官方的定义,我理解就是Docker最终目的就是建立一个轻量化的容器,并且容器是可以定制,通过Docker来启动定制容器。
1、安装
- centor-6中安装docker-io之前需要先卸载docker包
yum –y remove docker - 安装Fedora EPLE
yum install epel-release-6-8.noarch.rpm或yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm - yum安装
yum –y install docker 升级docker-1.9.1 目前大部分使用Centos6.5本,我使用Centos6.8,通过yum y install docker安装后为 1.7.1,在使用daocloud加速器时要求使用最低1.8的版本。 升级docker之前,首先要升级Linux内核,升级内核详见http://www.cnblogs.com/ywqbj/p/5756746.html。
- 查看docker的安装位置
[root@IDC-D-1699 docker]# whereis docker
docker: /usr/bin/docker /etc/docker /usr/local/bin/docker /usr/libexec/docker /usr/share/man/man1/docker.1.gz
- 内核升级成功后下载1.9.1的版本,
curl -sSL -O https://get.docker.com/builds/Linux/x86_64/docker-1.9.1。 - 替换原有的docker
cp docker-1.9.1 /usr/local/bin/docker - 启动并查看docker版本
[root@IDC-D-1699 docker]# service docker start Starting docker: [确定] [root@IDC-D-1699 docker]# docker version Client: Version: 1.9.1 API version: 1.21 Go version: go1.4.3 Git commit: a34a1d5 Built: Fri Nov 20 17:56:04 UTC 2015 OS/Arch: linux/amd64 Server: Version: 1.9.1 API version: 1.21 Go version: go1.4.3 Git commit: a34a1d5 Built: Fri Nov 20 17:56:04 UTC 2015 OS/Arch: linux/amd64
-
使用加速器
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://e39eb134.m.daocloud.io
[root@IDC-D-1699 docker]# curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://e39eb134.m.daocloud.io Success. You need to restart docker to take effect : sudo service docker restart
2、Docker命令
要想熟练的使用docker掌握好命令是第一前提。
分类 | 命令 |
环境信息 | info,version |
容器生命周期管理 | create,exec,kill,pause,restart,rm,run,start,stop,unpause |
镜像仓库命令 | login,logout,pull,push,search |
镜像管理 | build,image,import,load,rmi,save,tag,commit |
容器运维操作 | attach,export,inspect,port,ps,rename,stats,top,wait,cp,diff |
系统日志信息 | events,history,logs |
2.1 环境信息
docker info 用于检测Docker是否正确安装,如果正确安装会输出Docker环境信息。
[root@IDC-D-1699 ~]# docker info Containers: 1 Images: 22 Storage Driver: devicemapper Pool Name: docker-104:3-1313361-pool Pool Blocksize: 65.54 kB Backing Filesystem: extfs Data file: /dev/loop0 Metadata file: /dev/loop1 Data Space Used: 953 MB Data Space Total: 107.4 GB Data Space Available: 106.4 GB Metadata Space Used: 1.884 MB Metadata Space Total: 2.147 GB Metadata Space Available: 2.146 GB Udev Sync Supported: true Deferred Removal Enabled: false Data loop file: /var/lib/docker/devicemapper/devicemapper/data Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata Library Version: 1.02.117-RHEL6 (2016-04-01) Execution Driver: native-0.2 Logging Driver: json-file Kernel Version: 2.6.32-642.el6.x86_64 Operating System: <unknown> CPUs: 4 Total Memory: 3.738 GiB Name: IDC-D-1699 ID: RSDT:BELZ:DD36:AFSX:FDO7:ESFG:JYQA:ID5P:ENAK:YQGQ:5RMC:OBXN
Docker info 和 Docker version并没有额外的操作参数。
2.2 docker run
docker run 是核心命令之一,在使用docker时执行最多的命令,具体了解别忘了 docker run --help。
2.2.1 命令格式
docker run [options] image [commond] [arg…]
-d 后台模式运行,如果没有-d这个参数容器进入前台模式
-i 使用交互模式,始终保持输入流开放
-t 分配一个伪终端,一般两个参数合起来使用-it,即可在容器中利用打开的伪终端进行交互操作。
--name 指定容器启动的名称。
-c 选项给运行在容器中所有进程分配CPU的share值
3、搜索可用镜像
目前国内比较好的daocloud.com镜像站,功能还是比较强大,支持部署应用。