CentOS 7 安装 docker

yum search docker  查看是否 有docker包

yum info docker  版本为1.3.2

yum -y install docker 安装docker

docker --version

Docker version 1.3.2, build 39fa2fa/1.3.2

关闭 firewalld  与 Selinux

service docker start 启动

systemctl enable docker 设置开机启动

打开 Linux 内核 转发 添加:

vi /etc/sysctl.conf

net.ipv4.ip_forward = 1

保存 运行 sysctl -p 生效

修改docker 环境变量 docker 容器存储路径 ( 默认路径为 /var/lib/docker

docker info    查看环境变量

vi /etc/sysconfig/docker

OPTIONS=--selinux-enabled -H fd://

修改为如下

OPTIONS=--selinux-enabled --graph=/opt/docker/images -H fd://

重启docker

systemctl restart docker.service

docker info  查看是否已经变更

获取CentOS 镜像

docker pull centos:latest    下载最新版本的镜像

或者

docker pull centos:centos6   下载centos6镜像等

查看安装镜像的情况

docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE

centos              7                   8efe422e6104        2 weeks ago         224 MB

centos              centos7             8efe422e6104        2 weeks ago         224 MB

centos              latest              8efe422e6104        2 weeks ago         224 MB

在docker下运行 shell bash

docker run -i -t <IMAGE ID>  /bin/bash      //<IMAGE ID> 通过docker images命令获取,这里为510cf09a7986

docker run -i -t 8efe422e6104 /bin/bash

docker run -i -t <IMAGE ID>  /bin/bash    //此方式运行的容器,退出后容器就会自动关闭, 此方式是创建一个新的容器.

docker run -i -t -v /opt/software:/opt/software <IMAGE ID> /bin/bash    //-v 为挂载本地目录, 第一个/opt/software 为本地目录 : 后面为容器目录,目录不存在会自动创建

执行以后切换到

[root@8efe422e6104 /]#

在容器下安装 ssh  passwd

yum -y install tar unzip openssh-server passwd lrzsz bzip2

安装完毕以后 修改root 密码

passwd

修改 时区 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

修改字符编码  echo 'LANG="en_US.UTF-8"' >> /etc/locale.conf

-------------------------------------------------------------------------------

centos 7 启动sshd 提示如下:

Could not load host key: /etc/ssh/ssh_host_rsa_key

Could not load host key: /etc/ssh/ssh_host_ecdsa_key

创建key

ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key

ssh-keygen -t ecdsa -b 521 -f /etc/ssh/ssh_host_ecdsa_key

-------------------------------------------------------------------------------

然后再 安 装jdk 和 tomcat !!

安装过程与物理机安装过程相同 安装完毕以后

返回 物理机

docker ps -a  可查看运行的docker shell

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS

c6291c68a800        centos:7            "/bin/bash"         3 hours ago         Exited (0) 3 minutes ago

docker commit <CONTAINER ID> <name>      //修改镜像IMAGE名称

docker commit c6291c68a800 tomcat     //将此镜像的名称保存为 tomcat

docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE

tomcat-1            latest              983e0f7ea1fd        37 minutes ago      779.8 MB

docker ps -a

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS

ed1efc2c7d01        tomcat:latest     "/bin/bash"         9 minutes ago       Exited (0) 3 minutes ago

docker start <CONTAINER ID>         //<CONTAINER ID> 通过docker ps -a命令获取 启动此容器

docker attach <CONTAINER ID>        //返回到此容器中

docker start -i <CONTAINER ID>      // 启动此容器后连接到此容器中

启动容器的SSH 并映射端口

docker run -d -p 50001:22 <IMAGE ID> /usr/sbin/sshd -D    //<IMAGE ID> 为docker images 获取 需要获取tomcat的IMAGE ID

ssh -p 50001 127.0.0.1    进入容器

启动tomcat    查看容器ip

返回物理机

curl -I 容器ip:8080  查看是否正常

-------------------------------------------------------------------------------------------------------

其他运行命令

查看 docker 运行日志

docker logs -f <CONTAINER ID>

删除某个容器

docker rm  <CONTAINER ID>                //<CONTAINER ID> 通过docker ps -a命令获取

删除所有容器

docker rm `docker ps -a -q`

停止所有容器

docker stop `docker ps -a -q`

删除某个镜像

docker rmi <IMAGE ID >                  //<IMAGE ID> 通过docker images命令获取

导出某个镜像

docker save <IMAGE ID> > /tmp/myimage.tar

导入某个镜像

docker load < /tmp/myimage.tar

-------------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------------------

docker 设置独立IP 并映射端口          ( 必须开启 Linux 内核转发 net.ipv4.ip_forward )

物理机 单网卡 绑定多IP ..  如 em1   绑定 em1:1

(CentOS 7  绑定网卡  必须有 DEVICE=em1:1  这种名称)

em1  ip 为 172.24.0.11       绑定em1:1  IP 为 172.24.0.100     em1:2  IP 为 172.24.0.101  以SSH 端口 为例操作如下

物理机 不能与容器端口冲突, 容器与容器之间可以。

修改 172.24.0.11 的SSH 端口为 999    映射 IP 172.24.0.100  与  172.24.0.101 端口

docker run -h="web1" --name web1 -d -p 172.24.0.100:22:22 <images ID> /etc/rc.local

docker run -h="web2" --name web2 -d -p 172.24.0.101:22:22 <images ID> /etc/rc.local

-------------------------------------------------------------------------------------------------------------------------------------

docker 自建私有仓库

首先创建存储 镜像的目录

mkdir -p /opt/registry

默认情况下,会将仓库存放于容器内的/tmp/registry目录下,这样如果容器被删除,则存放于容器中的镜像也会丢失,所以我们一般情况下会指定本地一个目录挂载到容器内的/tmp/registry下.

执行

docker pull registry                 #安装docker私有仓库

启动 registry

docker run -d -e SETTINGS_FLAVOR=dev -e STORAGE_PATH=/tmp/registry -v /opt/registry:/tmp/registry -p 5000:5000 registry

--------------------------------------------------------------------------

可用 http://ip:5000    来访问

---------------------------------------------------

提示如下 表示启动完成

"\"docker-registry server\""

----------------------------------------------------

在客户机上面:

#docker images

dev                    latest              a7efdd5c0690        5 days ago          989.2 MB

#docker tag a7efdd5c0690 172.24.0.14:5000/dev

#docker images

dev                    latest              a7efdd5c0690        5 days ago          989.2 MB

172.24.0.14:5000/dev   latest              a7efdd5c0690        5 days ago          989.2 MB

#docker push 172.24.0.14:5000/dev

-------------------------------------------------------------------------------------------------------------------------------------------------

提示如下:

2015/03/16 15:34:35 Error: Invalid registry endpoint https://172.24.0.12:5000/v1/: Get https://172.24.0.12:5000/v1/_ping: dial tcp 172.24.0.12:5000: connection refused. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry 172.24.0.12:5000` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/172.24.0.12:5000/ca.crt

-------------------------------------------------------------------------------------------------------------------------------------------------

解决办法 禁用https 验证

vi /etc/sysconfig/docker

在 OPTIONS=--selinux-enabled 后面添加  --insecure-registry 172.24.0.14:5000

然后重启 docker !!

在次运行

#docker push 172.24.0.14:5000/dev

提示如下 为成功

----------------------------------------------------------------------------------------------------------------------

The push refers to a repository [172.24.0.14:5000/dev] (len: 1)

Sending image list

Pushing repository 172.24.0.14:5000/dev (1 tags)

511136ea3c5a: Image successfully pushed

5b12ef8fd570: Image successfully pushed

88f9454e60dd: Image successfully pushed

a7efdd5c0690: Image successfully pushed

Pushing tag for rev [a7efdd5c0690] on {http://172.24.0.14:5000/v1/repositories/dev/tags/latest}

-------------------------------------------------------------------------------------------------------------------------

私有仓库查询方法

curl http://172.24.0.14:5000/v1/search

如下所示  有 dev 表示 上传成功

--------------------------------------------------------------------------------------------------------------------------

{"num_results": 1, "query": "", "results": [{"description": "", "name": "library/dev"}]}

--------------------------------------------------------------------------------------------------------------------------

在其他客户机上访问和下载私有仓库的镜像

docker pull 172.24.0.14:5000/dev

----------------------------------------------------------------------------------------------------------------------------

docker pull 172.24.0.14:5000/dev

Pulling repository 172.24.0.14:5000/dev

88f9454e60dd: Download complete

511136ea3c5a: Download complete

5b12ef8fd570: Download complete

Status: Image is up to date for 172.24.0.14:5000/dev:latest

----------------------------------------------------------------------------------------------------------------------------

docker 使用 crontab 服务

yum 安装 crontab

yum -y install cronie

启动服务

/usr/sbin/crond

crontab -e   添加服务

docker 下使用 logrotate 服务 切割日志

安装 logrotate 服务

yum -y install logrotate

创建 切割规则

cd /etc/logrotate.d

vi  nginx

------------------------------------------------------------------

/opt/local/nginx/logs/*.log

{

daily                 #每天轮询一次

create 644 upload upload

dateext               #使用日期作为轮转后的日志文件的后缀

delaycompress         #推迟压缩

rotate 7              #一次将存储7个归档日志。对于第8个归档,时间最久的归档将被删除。

sharedscripts         #只为整个日志组运行一次的脚本

postrotate            #引入在轮换过日志之后要运行的脚本

if [ -f /opt/local/nginx/nginx.pid ]; then

kill -USR1 `cat /opt/local/nginx/nginx.pid`

fi

endscript

}

-------------------------------------------------------------------

ps:  docker 下不默认没有crond 必须启动crond 才能自动轮询

yum -y install cronie

启动服务

/usr/sbin/crond

logrotate 的启动脚本为

/etc/cron.daily/logrotate

CentOS 7 x64 docker 使用点滴的更多相关文章

  1. CentOS 7 安装 Docker

    CentOS 7 安装 Docker 这里介绍 ContOS 7 的安装 docker V1.2+,包括阿里云加速 docker 镜像下载的设置,这对提升使用 docker 体验至关重要.其他系统安装 ...

  2. 在RedHat/CentOS下安装Docker(不升级内核)

    由于内核版本问题,最初仅Ubuntu可以较好的支持Docker.不过,由于RedHat系列OS(REHL.CentOS)是目前主流的Linux服务器操作系统,所以令RedHat系列OS支持Docker ...

  3. docker入门(1) Centos 7 下docker的安装

    centos 7安装docker 什么是 Docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go ...

  4. 在centos下部署docker内网私服

    Docker内网私服:docker-registry with nginx & ssl on centos docker-registry既然也是软件应用,自然最简单的方法就是使用官方提供的已 ...

  5. CentOS 7 x64 安装 Ceph

    CentOS 7  x64 安装 Ceph 二, 实验环境 节点            IP                 主机名                  系统 MON         1 ...

  6. 简单介绍一下在CentOS上安装Docker。

    简单介绍一下在CentOS上安装Docker. 前置条件: 64-bit 系统 kernel 3.10+ 1.检查内核版本,返回的值大于3.10即可. $ uname -r 2.使用 sudo 或 r ...

  7. 【亲测有效】Centos安装完成docker后启动docker报错docker: unrecognized service的两种解决方案

    今天在学习Docker的时候 使用yum install docker安装完后启动不了,报错如下: [root@Sakura ~]# service docker start docker: unre ...

  8. CentOS中利用Docker安装RabbitMQ

    CentOS中利用Docker安装RabbitMQ 1.拉取镜像(带管理平台) #docker pull rabbitmq:3.7.7-management 2.启动容器: #docker run - ...

  9. CentOS中利用Docker安装Redis

    CentOS中利用Docker安装Redis 1.拉取镜像 #docker pull redis:4.0.10 2.加载镜像 #docker run -p 6379:6379 --name test- ...

随机推荐

  1. Nginx配置IP白名单和黑名单

    白名单设置,访问根目录 location / { allow 123.34.22.155; allow ; deny all; } 黑名单设置,访问根目录 location / { deny 123. ...

  2. 19个心得 明明白白说Linux下的负载均衡

    [51CTO.com独家特稿]前言:作为一名Linux/unix系统工程师,这几年一直在涉及到对外项目,经手过许多小中型网站的架构,F5.LVS及Nginx接触的都比较多,我想一种比较通俗易懂的语气跟 ...

  3. WdatePicker默认日期为当天

    不说废话,直接上代码: <input id="d4311" class="Wdate" onfocus="WdatePicker({maxDat ...

  4. Android PopupWindow菜单

    初学Android,引用了这篇文章的代码 http://www.cnblogs.com/jiezzy/archive/2012/08/15/2640584.html 使用PopupWindow制作自定 ...

  5. Inno Setup入门(四)——为程序创建桌面快捷方式

    Icons这一可选段定义所有创建在开始菜单和\或其它位置 (比如桌面) 的快捷方式.一个例子如下: [setup] ;全局设置,本段必须 AppName=Test AppVerName=TEST De ...

  6. launchMode传递参数注意startActivityForResult

    Activity1 到Activity2 用startActivityForResult 如果Activity2的launchMode为 singleInstance 和 singleTask 都会启 ...

  7. liunx 平台下软件包管理

    RPM/DPKG 两大阵营简介 在 GNU/Linux( 以下简称 Linux) 操作系统中,RPM 和 DPKG 为最常见的两类软件包管理工具,他们分别应用于基于 RPM 软件包的 Linux 发行 ...

  8. UVALive 2147 Push!!(队列实现DP)

    就我的理解来说这个题,本质上是一个DP题,不应该说是搜索,因为我的做法是把表格中所有的数据都找到,使用队列暴力来遍历出所有状态,因为题目中的数据范围小,所有耗时也小. 首先分析箱子是一个被动物体,人是 ...

  9. poj 1654 Area(计算几何--叉积求多边形面积)

    一个简单的用叉积求任意多边形面积的题,并不难,但我却错了很多次,double的数据应该是要转化为long long,我转成了int...这里为了节省内存尽量不开数组,直接计算,我MLE了一发...,最 ...

  10. 1--OC -- HelloWorld

      一.点击Xcode,选择“Create a new Xcode project” 二.左边选择“OS X Application”,右边选择“Command Line Tool”,Next 三.输 ...