centos7.2安装及管理docker
使用的操作系统是是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的更多相关文章
- Centos7下安装与卸载docker应用容器引擎
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Li ...
- Linux(Centos7)安装、使用 Docker
一.Linux(CentOS7) 上安装 docker 1.docker 是什么? docker 是一种 虚拟化容器技术,一个开源的应用容器引擎. 基于镜像,可以秒级启动各种容器(运行一次镜像就生成一 ...
- Centos7主机安装Cockpit管理其他主机
前提条件:需要管理的每台服务器上都需要安装cockpit 假设Centos7主机安装Cockpit的为A,其他主机为B 如果B上有A的公钥,那么直接连接至B,否则,输入B的用户名密码连接. 问题:在A ...
- CentOS7上安装和使用Docker
导读 Docker 是一个开源工具,它可以让创建和管理 Linux 容器变得简单,容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或停止.在本篇文章中我们将教你如何在 CentOS 7.x 中安 ...
- docker学习(一)在centos7上安装与启动docker
CentOS Docker 安装 1.Docker支持以下的CentOS版本: CentOS 7 (64-bit) CentOS 6.5 (64-bit) 或更高的版本 前提条件 目前,CentOS ...
- Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例
目录 [TOC] 1.环境准备 本文中的案例会有四台机器,他们的Host和IP地址如下 c1 -> 10.0.0.31 c2 -> 10.0.0.32 c3 -> 10.0.0. ...
- docker(一) Centos7下安装docker
docker(一) Centos7下安装dockerdocker(二) windows10下安装dockerdocker(三) 镜像和容器常用命令 docker(四) 使用Dockerfile构建镜像 ...
- centos7下安装docker(14安装docker machine)
之前我们做的实验都是在一个host上面的,其实在真正的环境中有多个host,容器在这些host上面启动,运行,停止和销毁,相关容器会通过网络相互通信,无论他们是否运行在相同的host上面. 对于这种歌 ...
- CentOS7系列--5.2CentOS7中配置和管理Docker
CentOS7配置和管理Docker Docker是操作系统级别的虚拟化工具,它能自动化布署在容器中的应用 1. 安装Docker 1.1. 安装Docker相关软件 [root@server1 ~] ...
随机推荐
- oracle中的分组排序
1.首先,需要建表. 表名:coursr(失误,表名写错了) 2.我们需要对每个课程进行排序. 3.知识准备: 分组排序函数有3种: row_number() over() rank() over() ...
- C# 模拟浏览器并自动操作
本文主要讲解通过WebBrowser控件打开浏览页面,并操作页面元素实现自动搜索功能,仅供学习分享使用,如有不足之处,还请指正. 涉及知识点 WebBrowser:用于在WinForm窗体中,模拟浏览 ...
- Mbp,一个用于学习.net core的开发框架
Mbp(https://github.com/mbpframework/Mbp)是一个.net core 3的企业级web开发框架,是我个人用于学习.net core而发起的一个开源项目.这个借鉴了国 ...
- Node.js+Express+MongoDB数据库实现网页注册登入功能
通过 Node.js + Express + MongoDB 实现网页注册账号 和 登入账号的功能 项目准备: 1: 事先准备好项目的页面 (首页页面 index.html)(登入页面 login.h ...
- Supermap/Cesium 开发心得----获取三维视角的四至范围
网上目前有两种获取当前Camera的四至范围的方法 方法一 这种方法是最通用的,即使在哥伦布视角(2.5D下依旧能准确获取值) function getCurrentExtent() { // ...
- OA表单制作(致远)
第一步.导入已经制作好的xnl表单文件. 第二步.对每个字段设置相关属性. 1.设置文本属性,录入类型选择文本框. 2.设置日期属性,录入类型选择日期控件. 3.设置引用类型,录入类型选择关联表单-- ...
- Linux 按 Ctrl + S 卡死的解决办法
ctrl + s 的作用是暂停屏幕输出 ctrl + q 恢复屏幕输出即可 恢复之后会出现在暂停期间输入的字符
- Asp.Net MVC Webapi Eventsource 实现时效消息
ApiController 后端API public System.Net.Http.HttpResponseMessage GetUnknownNotices() { var user = Form ...
- java开发,入职半年。对未来迷茫,如何发展
蛮多人私密我一些问题,关于面试,关于技术的,我只能说有些路只能靠自己去走,没人可以帮到自己,哪怕偶尔帮一到两次,但是技术的路这么长,总归需要自己独自成长的.附一张自己藏书的照片,与各位共勉 工作三年多 ...
- (一)初识NumPy库(数组的创建和变换)
在学习数据分析时,NumPy作为最基础的数据分析库,我们能够熟练的掌握它是学习数据分析的必要条件.接下来就让我们学习该库吧. 学习NumPy库的环境: python:3.6.6 编辑器:pycharm ...