Docker使用了一种叫AUFS的文件系统,这种文件系统可以让你一层一层地叠加修改你的文件,最底下的文件系统是只读的,如果需要修改文件,AUFS会增加一个可写的层(Layer),这样有很多好处,例如不同的Container可以共享底层的只读文件系统(同一个Kernel),使得你可以跑N多个Container而不至于你的硬盘被挤爆了!这个只读的层就是Image!而如你所看到的,一个可写的层就是Container。

那Image和Container的区别是什么?很简单,他们的区别仅仅是一个是只读的层,一个是可写的层,你可以使用docker commit 命令,将你的Container变成一个Image,也就是提交你所运行的Container的修改内容,变成一个新的只读的Image,这非常类似于git commit命令!(docker && docker hub || git && git hub)

现在docker官网很慢,安装可去这里:http://get.daocloud.io/

1) Install docker

wget -qO- https://get.docker.com/ | sh

2) Add your user to docker group(能够以非特权用户的身份来运行docker命令):

sudo usermod -aG docker "username" #当前用户使用$USER

sudo service docker start

sudo chkconfig docker on

安装过程中的报错

[vagrant@localhost ~]$ sudo service docker start
Redirecting to /bin/systemctl start docker.service
Job for docker.service failed. See 'systemctl status docker.service' and 'journalctl -xn' for details.

解决办法(其他的一些问题不知道是不是安装了这个解决的还是因为重启,总之,需要的时候,安装完包之后重启下)

yum install device-mapper-event-libs

安装 device-mapper-event-libs

centos7 Docker安装完成后,输入docker info命令,报如下警告信息:
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
解决方法:修改系统文件的机器bridge模式开启
设置机器开机启动的时候执行下面两条命令
编辑vim /etc/rc.d/rc.local添加下面两条命令
echo > /proc/sys/net/bridge/bridge-nf-call-iptables
echo > /proc/sys/net/bridge/bridge-nf-call-ip6tables
centos7需要增加执行权限:
chmod +x /etc/rc,d/rc.local
重启系统

安装compose

1.OS X和64位的Linux用如下命令安装(https://github.com/docker/compose/releases/)。

#curl -L https://github.com/docker/compose/releases/download/1.7.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

#chmod +x /usr/local/bin/docker-compose

(这种安装我没安装成功,curl老是超时,似乎其中请求的一个地址被墙)

2.Python包一样安装:

$ sudo pip install -U docker-compose

docker容器没起sshd服务的时候,还想进入docker怎么办,我们可以使用nsenter(或命令docker-enter)进入docker容器的命名空间namespace来虚拟登入docker容器

(使用这种方式安装成功,开始也报错,更新了下pip install --upgrade pip,然后更新安装backports.ssl-match-hostname的版本pip install --upgrade backports.ssl_match_hostname,然后就安装成功了)

由于docker官网被墙,pull不到镜像,然后使用 daocloud 来pull的镜像

doc地址:http://docs.daocloud.io/daocloud-registry/pull-push

docker 命令:

1. docker version
显示 Docker 版本信息。 2. docker info
显示 Docker 系统信息,包括镜像和容器数。 3. docker search
docker search [options "o">] term
docker search -s django
从 Docker Hub 中搜索符合条件的镜像。
--automated 只列出 automated build
类型的镜像;
--no-trunc 可显示完整的镜像描述;
-s 40 列出收藏数不小于40的镜像。 4. docker pull
docker pull [-a "o">] [user/ "o">]name[:tag "o">]
docker pull laozhu/telescope:latest
从 Docker Hub 中拉取或者更新指定镜像。
-a 拉取所有 tagged 镜像 。 5. docker login
root@moon:~# docker login
Username: username
Password: ****
Email: user@domain.com
Login Succeeded
按步骤输入在 Docker Hub 注册的用户名、密码和邮箱即可完成登录。 6. docker logout
运行后从指定服务器登出,默认为官方服务器。 7. docker images
docker images [options "o">] [name]
列出本地所有镜像。其中 [name] 对镜像名称进行关键词查询。
-a 列出所有镜像(含过程镜像);
-f 过滤镜像,如: -f ['dangling=true'] 只列出满足
dangling=true 条件的镜像;
--no-trunc 可显示完整的镜像ID;
-q 仅列出镜像ID。
--tree 以树状结构列出镜像的所有提交历史。 8. docker ps
列出所有运行中容器。
-a 列出所有容器(含沉睡镜像);
--before="nginx" 列出在某一容器之前创建的容器,接受容器名称和ID作为参数;
--since="nginx" 列出在某一容器之后创建的容器,接受容器名称和ID作为参数;
-f [exited=<int>] 列出满足
exited=<int> 条件的容器;
-l 仅列出最新创建的一个容器;
--no-trunc 显示完整的容器ID;
-n=4 列出最近创建的4个容器;
-q 仅列出容器ID;
-s 显示容器大小。 9. docker rmi
docker rmi [options "o">] <image> "o">[image...]
docker rmi nginx:latest postgres:latest python:latest
从本地移除一个或多个指定的镜像。
-f 强行移除该镜像,即使其正被使用;
--no-prune 不移除该镜像的过程镜像,默认移除。 10. docker rm
docker rm [options "o">] <container> "o">[container...]
docker rm nginx-01 nginx-02 db-01 db-02
sudo docker rm -l /webapp/redis
-f 强行移除该容器,即使其正在运行;
-l 移除容器间的网络连接,而非容器本身;
-v 移除与容器关联的空间。 11. docker history
docker history "o">[options] <image>
查看指定镜像的创建历史。
--no-trunc 显示完整的提交记录;
-q 仅列出提交记录ID。 12. docker start|stop|restart
docker start|stop "p">|restart [options "o">] <container> "o">[container...]
启动、停止和重启一个或多个指定容器。
-a 待完成
-i 启动一个容器并进入交互模式;
-t 10 停止或者重启容器的超时时间(秒),超时后系统将杀死进程。 13. docker kill
docker kill "o">[options "o">] <container> "o">[container...]
杀死一个或多个指定容器进程。
-s "KILL" 自定义发送至容器的信号。 14. docker events
docker events [options "o">]
docker events --since= "s2">"20141020"
docker events --until= "s2">"20120310"
从服务器拉取个人动态,可选择时间区间。 15. docker save
docker save -i "debian.tar"
docker save > "debian.tar"
将指定镜像保存成 tar 归档文件, docker load 的逆操作。保存后再加载(saved-loaded)的镜像不会丢失提交历史和层,可以回滚。
-o "debian.tar" 指定保存的镜像归档。 16. docker load
docker load [options]
docker load < debian.tar
docker load -i "debian.tar"
从 tar 镜像归档中载入镜像, docker save 的逆操作。保存后再加载(saved-loaded)的镜像不会丢失提交历史和层,可以回滚。
-i "debian.tar" 指定载入的镜像归档。 17. docker export
docker export <container>
docker export nginx-01 > export.tar
将指定的容器保存成 tar 归档文件, docker import 的逆操作。导出后导入(exported-imported))的容器会丢失所有的提交历史,无法回滚。 18. docker import
docker import url|- "o">[repository[:tag "o">]]
cat export.tar "p">| docker import - imported-nginx:latest
docker import http://example.com/export.tar
从归档文件(支持远程文件)创建一个镜像, export 的逆操作,可为导入镜像打上标签。导出后导入(exported-imported))的容器会丢失所有的提交历史,无法回滚。 19. docker top
docker top <running_container> "o">[ps options] 查看一个正在运行容器进程,支持 ps 命令参数。 20. docker inspect
docker instpect nginx:latest
docker inspect nginx-container 检查镜像或者容器的参数,默认返回 JSON 格式。
-f 指定返回值的模板文件。 21. docker pause 暂停某一容器的所有进程。 22. docker unpause
docker unpause <container>恢复某一容器的所有进程。 23. docker tag
docker tag [options "o">] <image>[:tag "o">] [repository/ "o">][username/]name "o">[:tag]
标记本地镜像,将其归入某一仓库。
-f 覆盖已有标记。 24. docker push
docker push name[:tag "o">]
docker push laozhu/nginx:latest
将镜像推送至远程仓库,默认为 Docker Hub 。 25. docker logs
docker logs [options "o">] <container>
docker logs -f -t --tail= "s2">"10" insane_babbage
获取容器运行时的输出日志。
-f 跟踪容器日志的最近更新;
-t 显示容器日志的时间戳;
--tail="10" 仅列出最新10条容器日志。 26. docker run
docker run [options "o">] <image> [ "nb">command] "o">[arg...]
启动一个容器,在其中运行指定命令。
-a stdin 指定标准输入输出内容类型,可选 STDIN/STDOUT / STDERR 三项;
-d 后台运行容器,并返回容器ID;
-i 以交互模式运行容器,通常与 -t 同时使用;
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb" 为容器指定一个名称;
--dns 8.8.8.8 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com 指定容器DNS搜索域名,默认和宿主一致;
-h "mars" 指定容器的hostname;
-e username="ritchie" 设置环境变量;
--env-file=[] 从指定文件读入环境变量;
--cpuset="0-2" or --cpuset="0,1,2" 绑定容器到指定CPU运行;
-c 待完成
-m 待完成
--net="bridge" 指定容器的网络连接类型,支持 bridge / host / none
container:<name|id> 四种类型;
--link=[] 链接其他容器
--expose=[] 挂载容器

docker 安装的更多相关文章

  1. 理解Docker(1):Docker 安装和基础用法

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  2. docker安装

    系统要求:需要一个64位的centos7操作系统和版本3.10或更高版本的Linux内核 开始安装: uname -r   //查看内核版本yum -y update //更新系统更新到最新 #安装d ...

  3. 2. Docker - 安装

    一.Docker介绍 1. Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上, 也可以实现虚拟化. 容器时完全使用沙 ...

  4. Docker 安装部署

    Docker学习笔记 一.Ubuntu Docker 安装 (1).获取最新版本Docker安装包 lyn@lyn:/data/docker$ sudo wget -qO- https://get.d ...

  5. Docker安装及基本使用方法

    Docker安装 CentOS6上安装Docker # yum -y install epel-release # yum -y install docker-io CentOS7上安装Docker ...

  6. Mac 下 docker安装

    http://www.th7.cn/system/mac/201405/56653.shtml Mac 下 docker安装 以及 处理错误Cannot connect to the Docker d ...

  7. docker安装caffe

    [最近一直想要学习caffe,但是苦苦纠结于环境安装不上,真的是第一步都迈不出去,还好有docker的存在!下面,对本人如何利用docker安装caffe做以简单叙述,不属于教程,只是记录自己都做了什 ...

  8. Docker安装Gitlab

    一.Ubuntu16.4上Docker安装Gitlab 1.安装docker 参见:https://docs.docker.com/engine/installation/linux/ubuntuli ...

  9. 使用docker安装部署Spark集群来训练CNN(含Python实例)

    使用docker安装部署Spark集群来训练CNN(含Python实例) http://blog.csdn.net/cyh_24/article/details/49683221 实验室有4台神服务器 ...

随机推荐

  1. oracle之压缩表

    oracle压缩数据的处理基于数据库块,本质是通过消除在数据库中的重复数据来实现空间节约. 具体做法: 比较数据块中包含的所有字段或记录,其中重复的数据只在位于数据块开始部分的记号表(Symbol T ...

  2. libcurl发起post请求时间延迟问题。except为空即可

    最近在做团购酒店APP分享到qzone功能,使用libcurl访问qzone的分享cgi接口,酒店分享信息以POST方式传输,在测试的时候发现分享接口平均有2s的延迟,这延迟也太大了吧,于是乎问了空间 ...

  3. datalist的用法

    DataList 提供相关的编辑模板,但和DataGrid不一样的是,DataList没有编辑按钮.要在DataList中使用编辑功能,可在项模板中增加一个按 钮,Linkbutton和Button都 ...

  4. HTML适应手机浏览器宽度

    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scal ...

  5. C++编程命名规则(转载)

    原文地址:http://www.cnblogs.com/ggjucheng/archive/2011/12/15/2289291.html 如果想要有效的管理一个稍微复杂一点的体系,针对其中事物的一套 ...

  6. java短信接口

    一.背景 从是Java一直想做一个跟生活联系特别紧密的东西,比如短信.邮箱.电话什么的一直是我感兴趣的,可是楞是当初没有头绪弄,恰巧今天公司在做一个 webrtc的视频会议的软件,刚好有短信这个需求, ...

  7. Longest Substring Without Repeating Characters -- LeetCode

    原题链接: http://oj.leetcode.com/problems/longest-substring-without-repeating-characters/ 这道题用的方法是在LeetC ...

  8. Redis部分数据结构方法小结

    package com.practice.util; import java.util.HashMap; import java.util.List; import java.util.Map; im ...

  9. 51nod 1515 明辨是非 并查集 + set + 启发式合并

    给n组操作,每组操作形式为x y p. 当p为1时,如果第x变量和第y个变量可以相等,则输出YES,并限制他们相等:否则输出NO,并忽略此次操作. 当p为0时,如果第x变量和第y个变量可以不相等,则输 ...

  10. 安装ss

    用的是centos , shell中执行如下命令 yum install python-setuptools && easy_install pip pip install shado ...