使用的操作系统是是centos7.2,按照官方的推荐的配置,把linux内核升级到3.8以上。安装步骤如下:

1、升级内核版本(包含aufs)
cd /etc/yum.repos.d
wget http://www.hop5.in/yum/el6/hop5.repo
yum install kernel-ml-aufs kernel-ml-aufs-devel

2、修改引导的内核
vi /etc/grub.conf
把默认的引导文件设置为0。因为升级内核之后,新的内核在第一个(0)位置。

3、重启系统,使用新的内核
#检查内核版本:
uname -r
3.10.5-3.el6.x86_64
#检查aufs是否存在
grep aufs /proc/filesystems
nodev aufs

4、安装相应的epel源
wget http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm

5、安装docker
yum -y install docker-io

6、启动docker
启动docker进程:service docker start
查看docker进程:ps -ef |grep docker
root 1878 1 0 18:33 ? 00:00:00 /usr/bin/docker -d
root 2307 2201 0 18:52 pts/0 00:00:00 grep docker

7、Docker常用命令讲解
docker version #查看版本
docker search centos#搜索可用docker镜像
docker images 查看当前docker所有镜像
docker pull centos #下载镜像
cat centos.tar | docker import - centos6 #Docker导入镜像
docker export id > cenos6.tar #Docker导出镜像
docker run centos echo "hello word"#在docker容器中运行hello world!
docker run centos yum install ntpdate#在容器中安装ntpdate的程序
docker ps -l 命令获得最后一个容器的id,docker ps -a查看所有的容器。
运行docker commit 提交刚修改的容器,例如:
docker commit 2313132 centos:v1
docker run -i -t centos /bin/bash 在容器里启动一个/bin/bash shell环境,可以登录进入操作,其中-t 表示打开一个终端的意思,-i表示可以交互输入。
docker run -d -i -t centos /bin/bash 在后台启动
docker attach CONTAINER ID 进入在后台启动后的这个容器
docker run -d centos:v1 /bin/bash ,-d表示在后台启动,以daemon方式启动。
docker run -d -p 80:80 -p 8022:22 centos:latest /usr/bin/sshd -D
docker stop id 关闭容器
docker start id 启动某个容器
docker rm id 删除容器,docker rmi images删除镜像
进入容器:
如果 docker 版本已经在 1.3 以上了, 那么可以用 docker exec 这个命令:
docker exec -it <CONTAINER ID> /bin/bash /这样你就进到这个container 里面了,这个bash退出也不会影响之前 docker run 启动的 bash/
docker -p 80:80 centos 代表映射

8.docker 初体验

获取一个docker镜像
docker pull centos
列出所有docker镜像
docker images

在容器里启动一个/bin/bash
docker run centos /bin/bash

9.体验docker hub
创建 docker hub 帐号
docker login
然后就注册用户名密码

然后在使用 docker login 登录

8、Docker独立IP及容器互联
service docker stop
ifconfig docker0 down
brctl delbr docker0
cd /etc/sysconfig/network-scripts/

vi ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
BRIDGE="br0"
BOOTPROTO=static

vi ifcfg-br0
DEVICE="br0"
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
TYPE=bridge
IPADDR=192.168.1.165
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS=192.168.1.50

vi /etc/sysconfig/docker
other_args="-b=br0"

service docker start
[root@localhost ~]# ps -ef|grep docker
root 5502 1 0 01:23 pts/3 00:00:00 /usr/bin/docker -d -b=br0
root 5800 5311 0 01:47 pts/3 00:00:00 grep docker

service network restart
可能会报以下错误:
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface br0: Determining if ip address 192.168.1.161 is already in use for device br0...
[ OK ]
Bringing up interface eth0: Error: Connection activation failed: Master connection not found or invalid
[FAILED]
解决方法:
此时,当前网卡也是可以通信的,但是通过网络管理工具修改IP之后,当前修改操作是不会生效的。那如何消除这个提示呢?
其实,问题的原因是RedHat自己开发的NetworkManager管理工具和/etc/sysconfig/network-scripts/ifcfg-ethx配置不同步造成的。如果要消除这个提示,请关闭NetworkManager服务即可:
chkconfig NetworkManager off
service NetworkManager stop
Stopping NetworkManager daemon: [ OK ]
此时,再重新加载network服务即可:
service network restart
Shutting down interface br0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface br0: Determining if ip address 192.168.1.161 is already in use for device br0...
[ OK ]
Bringing up interface eth0: device eth0 is already a member of a bridge; can't enslave it to bridge br0.
[ OK ]

9、为容器手动配置静态ip
安装新的 iproute 包:
wget https://repos.fedorapeople.org/repos/openstack/openstack-icehouse/epel-6/iproute-2.6.32-130.el6ost.netns.2.x86_64.rpm
yum localinstall iproute-2.6.32-130.el6ost.netns.2.x86_64.rpm

安装pipework:
git clone https://github.com/jpetazzo/pipework
cp ~/pipework/pipework /usr/local/bin/
启动Docker容器:
docker run -itd --net=none jdeathe/centos-ssh:latest /bin/bash

docker exec -it <CONTAINER ID> /bin/bash /这样你就进到这个container 里面了,这个bash退出也不会影响之前 docker run 启动的 bash/

pipework br0 <CONTAINER ID> 192.168.1.170/24@192.168.1.1

10、制作可以ssh登录的本地Docker镜像
安装制作CentOS镜像的工具:
yum -y install febootstrap

制作CentOS镜像文件centos6-image目录:
febootstrap -i bash -i wget -i yum -i iputils -i iproute -i man -i vim-minimal -i openssh-server -i openssh-clients centos6 centos6-image http://mirrors.aliyun.com/centos/6/os/x86_64/

制作Docker镜像,镜像名字是centos6-base:
cd centos6-image && tar -c .|docker import - centos6-base

制作可以ssh登陆的Docker镜像,名字是centos6-ssh:
docker build -t centos6-ssh https://git.oschina.net/feedao/Docker_shell/raw/start/Dockerfile

经过前面的六个步骤,一个可以登陆的本地docker镜像就制作好了。
用户名是:root,密码是:123456

centos7.2安装及管理docker的更多相关文章

  1. Centos7下安装与卸载docker应用容器引擎

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Li ...

  2. Linux(Centos7)安装、使用 Docker

    一.Linux(CentOS7) 上安装 docker 1.docker 是什么? docker 是一种 虚拟化容器技术,一个开源的应用容器引擎. 基于镜像,可以秒级启动各种容器(运行一次镜像就生成一 ...

  3. Centos7主机安装Cockpit管理其他主机

    前提条件:需要管理的每台服务器上都需要安装cockpit 假设Centos7主机安装Cockpit的为A,其他主机为B 如果B上有A的公钥,那么直接连接至B,否则,输入B的用户名密码连接. 问题:在A ...

  4. CentOS7上安装和使用Docker

    导读 Docker 是一个开源工具,它可以让创建和管理 Linux 容器变得简单,容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或停止.在本篇文章中我们将教你如何在 CentOS 7.x 中安 ...

  5. docker学习(一)在centos7上安装与启动docker

    CentOS Docker 安装 1.Docker支持以下的CentOS版本: CentOS 7 (64-bit) CentOS 6.5 (64-bit) 或更高的版本 前提条件 目前,CentOS ...

  6. Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例

    目录 [TOC] 1.环境准备 ​ 本文中的案例会有四台机器,他们的Host和IP地址如下 c1 -> 10.0.0.31 c2 -> 10.0.0.32 c3 -> 10.0.0. ...

  7. docker(一) Centos7下安装docker

    docker(一) Centos7下安装dockerdocker(二) windows10下安装dockerdocker(三) 镜像和容器常用命令 docker(四) 使用Dockerfile构建镜像 ...

  8. centos7下安装docker(14安装docker machine)

    之前我们做的实验都是在一个host上面的,其实在真正的环境中有多个host,容器在这些host上面启动,运行,停止和销毁,相关容器会通过网络相互通信,无论他们是否运行在相同的host上面. 对于这种歌 ...

  9. CentOS7系列--5.2CentOS7中配置和管理Docker

    CentOS7配置和管理Docker Docker是操作系统级别的虚拟化工具,它能自动化布署在容器中的应用 1. 安装Docker 1.1. 安装Docker相关软件 [root@server1 ~] ...

随机推荐

  1. Spring Cloud进阶之路 | 二:服务提供者(discovery)

    1 创建父项目 以前文所述,以spring boot 2.1.7.RELEASE为基,spring cloud版本为Greenwich.SR2,spring cloud alibaba版本为2.1.0 ...

  2. vue中子组件直接修改父组件prop属性bug

    在有些时候,子组件直接修改父组件传来的 prop 对象的属性会出现不同步的问题. 比如,父组件传过来的一个对象 checkBoxObj: checkBoxObj:{ checked: false } ...

  3. NPOI 设置下拉列表

    HSSFWorkbook workbook = new HSSFWorkbook();//创建工作簿 ISheet sheet = workbook.CreateSheet();//创建sheet页 ...

  4. iOS 和 H5 页面交互(WKWebview 和 UIWebview cookie 设置)

    iOS 和 H5 页面交互(WKWebview 和 UIWebview cookie 设置) 主要记录关于cookie相关的坑 1. UIWebview 1. UIWebview 相对比较简单 直接通 ...

  5. LL(1)文法的判断,递归下降分析程序

    1. 文法 G(S): (1)S -> AB (2)A ->Da | ε (3)B -> cC (4)C -> aADC | ε (5)D -> b | ε 验证文法 G ...

  6. 收到一个神盾局的offer,怎么样?

    漫威十一年系列总结性的电影<复联4>正在热映,而衍生出的一部和漫威宇宙关联的美剧<神盾局特工>,今年我也在陆陆续续地看.一开始预期的是一部特工加一些科幻或魔幻元素的剧集,就图看 ...

  7. spring-boot 再添加mysql启动器的时候报错, The driver is automatically registered via the SPI and manual loading of the driver class....

    mysql驱动更新迭代之后驱动,稍微有点变化: com.mysql.jdbc.Driver (变化为) --> driver-class-name: com.mysql.cj.jdbc.Driv ...

  8. Python中的测试工具

      当我们在写程序的时候,我们需要通过测试来验证程序是否出错或者存在问题,但是,编写大量的测试来确保程序的每个细节都没问题会显得很繁琐.在Python中,我们可以借助一些标准模块来帮助我们自动完成测试 ...

  9. 利用Python写一个抽奖程序,解密游戏内抽奖的秘密

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 极客挖掘机 PS:如有需要Python学习资料的小伙伴可以加点击下 ...

  10. CF977D Divide by three, multiply by two

    题目链接 我同学在旁边做者道题,我也看了一下 真的好水难 一看这道题,直接搜索 剪枝是不可能剪枝的一辈子不可能 Code #include <cstdio> #include <io ...