阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Docker使用教程

410次阅读
没有评论

共计 9951 个字符,预计需要花费 25 分钟才能阅读完成。

当我们把 CentOS 6.5 安装好以后,可以使用这个脚本来使用国内的阿里云镜像源

#!/bin/bash
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum makecache

有了国内的源地址,后面安装东西就方便了。
搜索 docker,可以看到 docker-io.x86_64 和 docker-registry.noarch,安装 docker 就简单了。

[root@localhost ~]# yum search docker
 Loaded plugins: fastestmirror
 Loading mirror speeds from cached hostfile
 ======================================================== N/S Matched: docker =========================================================
 Python-docker-py.x86_64 : An API client for docker written in Python
 docker-io.x86_64 : Automates deployment of containerized applications
 docker-registry.noarch : Registry server for Docker
 Fedora-dockerfiles.noarch : Example dockerfiles to assist standing up containers quickly
 imagefactory-plugins-Docker.noarch : Cloud plugin for Docker
 docker.x86_64 : KDE and GNOME2 system tray replacement docking application

  Name and summary matches only, use “search all” for everything.

 

CentOS 6/ 7 系列安装 Docker http://www.linuxidc.com/Linux/2014-07/104768.htm 

Docker 的搭建 Gitlab CI 全过程详解 http://www.linuxidc.com/Linux/2013-12/93537.htm 

Docker 安装应用 (CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

Docker 和一个正常的虚拟机有何区别? http://www.linuxidc.com/Linux/2013-12/93740.htm 

在 Docker 中使用 MySQL http://www.linuxidc.com/Linux/2014-01/95354.htm 

Docker 将改变所有事情 http://www.linuxidc.com/Linux/2013-12/93998.htm 

Docker 安装应用 (CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2014-09/106675p2.htm

Docker 使用系列一我们把镜像源改为了阿里云的,方便后续的操作。

执行这个命令就把源地址改为阿里的:

curl https://git.oschina.net/linuxidc/Docker_shell/raw/start/ali-CentOS.sh | sh

第一安装 Docker:

yum -y install docker-io

第二启动 Docker:

service docker start

第三安装制作 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/linuxidc/Docker_shell/raw/start/Dockerfile

经过前面的六个步骤,一个可以登陆的本地 docker 镜像就制作好了。

用户名是:root,密码是:123456

体验步骤:

创建容器:

docker run -d -p 127.0.0.1:33301:22 centos6-ssh

ssh 登陆容器:

ssh root@127.0.0.1 -p 33301

输入密码后就可以开始折腾了。

通过授信无密码登陆请看第四篇:

Docker 使用系列四:CentOS 6.5 制作自动授信 Docker 容器镜像 http://www.linuxidc.com/Linux/2014-09/106675p4.htm

当我们把 CentOS 6.5 安装好以后,可以使用这个脚本来使用国内的阿里云镜像源

#!/bin/bash
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum makecache

有了国内的源地址,后面安装东西就方便了。
搜索 docker,可以看到 docker-io.x86_64 和 docker-registry.noarch,安装 docker 就简单了。

[root@localhost ~]# yum search docker
 Loaded plugins: fastestmirror
 Loading mirror speeds from cached hostfile
 ======================================================== N/S Matched: docker =========================================================
 Python-docker-py.x86_64 : An API client for docker written in Python
 docker-io.x86_64 : Automates deployment of containerized applications
 docker-registry.noarch : Registry server for Docker
 Fedora-dockerfiles.noarch : Example dockerfiles to assist standing up containers quickly
 imagefactory-plugins-Docker.noarch : Cloud plugin for Docker
 docker.x86_64 : KDE and GNOME2 system tray replacement docking application

  Name and summary matches only, use “search all” for everything.

 

CentOS 6/ 7 系列安装 Docker http://www.linuxidc.com/Linux/2014-07/104768.htm 

Docker 的搭建 Gitlab CI 全过程详解 http://www.linuxidc.com/Linux/2013-12/93537.htm 

Docker 安装应用 (CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

Docker 和一个正常的虚拟机有何区别? http://www.linuxidc.com/Linux/2013-12/93740.htm 

在 Docker 中使用 MySQL http://www.linuxidc.com/Linux/2014-01/95354.htm 

Docker 将改变所有事情 http://www.linuxidc.com/Linux/2013-12/93998.htm 

Docker 安装应用 (CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2014-09/106675p2.htm

所有操作都是用 root 账号在 CentOS 6.5 上完成,假设没有安装 docker

依次使用 root 执行后面的命令就可以了

curl https://git.oschina.net/linuxidc/Docker_shell/raw/start/ali-centos.sh | sh
yum -y install docker-io
service docker start
yum -y install debootstrap
debootstrap –arch amd64 –include=vim,openssh-server,openssh-client trusty Ubuntu-trusty http://mirrors.aliyun.com/ubuntu/
cd ubuntu-trusty && tar -c .|docker import – ubuntu1404-base
docker build -t ubuntu1404-ssh https://git.oschina.net/linuxidc/Docker_shell/raw/start/trustyDockerfile
docker run -d -p 127.0.0.1:33303:22 ubuntu1404-ssh

前面完成后,登陆容器:

ssh root@127.0.0.1 -p 33303

输入密码:123456

效果如下:

[root@localhost lists]# ssh root@127.0.0.1 -p 33303
root@127.0.0.1’s password:
Welcome to Ubuntu 14.04 LTS (GNU/Linux 2.6.32-431.11.2.el6.x86_64 x86_64)
 
 * Documentation:  https://help.ubuntu.com/
Last login: Fri Apr 18 08:14:45 2014 from 172.17.42.1
root@0b26318a0d63:~# cat /etc/issue
Ubuntu 14.04 LTS \n \l
 
root@0b26318a0d63:~# uname -a
Linux 0b26318a0d63 2.6.32-431.11.2.el6.x86_64 #1 SMP Tue Mar 25 19:59:55 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

从上面可以看出,内核还是使用的 CentOS 的,只是版本和软件编程了 ubuntu 14.04
这好像是个问题

这篇文章依赖于 http://www.linuxidc.com/Linux/2014-09/106675p2.htm,在前面的文章中我们制作好了两个镜像,

CentOS6-base 和 centos6-ssh,今天我们要依赖于 centos6-ssh 镜像,制作第三个自动授信的镜像 centos-newssh。

方法如下:

curl https://git.oschina.net/linuxidc/Docker_shell/raw/start/Docker-centos-autossh.sh | sh

一个命令就行了,这条命令会创建一个新镜像 centos-newssh

开始体验,现在不需要输入 root 密码了:

docker run -d -p 127.0.0.1:33306:22 -m 256M centos-newssh
ssh root@127.0.0.1 -p 33306 “echo $LANG;ifconfig”

如果不想第一次连接的时候输入 yes,确认连接,可以使用下面的命令:

ssh -o StrictHostKeyChecking=no root@127.0.0.1 -p 33306 “echo $LANG;ifconfig”

体验完了,我们来分析下

https://git.oschina.net/linuxidc/Docker_shell/raw/start/Docker-centos-autossh.sh

#!/bin/sh
[! -d /root/.ssh] && mkdir -p /root/.ssh
ssh-keygen -q -N “” -t dsa -f /root/.ssh/id_dsa
KEY_PUB=`cat /root/.ssh/id_dsa.pub`
[! -d /root/docker-temp] && mkdir /root/docker-temp
cd /root/docker-temp
cat >/root/docker-temp/Dockerfile <<EOF
#Dockerfile
FROM centos6-ssh
MAINTAINER linuxidc <feedao@163.com>
EOF
echo “RUN echo \”$KEY_PUB\” > /root/.ssh/authorized_keys && chmod 600 /root/.ssh/authorized_keys ” >>Dockerfile
cd /root && cat /root/docker-temp/Dockerfile | docker build -t centos-newssh –
 

脚本内容比较简单,就是生成新的秘钥和公钥

ssh-keygen -q -N “” -t dsa -f /root/.ssh/id_dsa
 
然后把公钥自动加到 Docker 容器中,这里是修改 Dockerfile:

echo “RUN echo \”$KEY_PUB\” > /root/.ssh/authorized_keys && chmod 600 /root/.ssh/authorized_keys ” >>Dockerfile
 
最后创建新的镜像:

cd /root && cat /root/docker-temp/Dockerfile | docker build -t centos-newssh –

你可以把 /root/docker-temp 文件夹删除 

rm -rf /root/docker-temp

在国内使用 docker pull 总是不能正常拉取文件下来,现在可以自己制作镜像服务器了

希望你已经有了无需密码就能登陆的 CentOS-newssh 镜像,如果还没有,请看 Docker 使用系列四:http://www.linuxidc.com/Linux/2014-09/106675p4.htm

制作 Docker 镜像私服步骤如下:

本文假设本机 IP 是 192.168.56.101,Registry 服务的域名是 registry.linuxidc.com

第一步执行下面的命令会创建一个名为 centos-registry 镜像:

docker build -t centos-registry https://git.oschina.net/linuxidc/Docker_shell/raw/start/Dockerfile-registry
 

第二步,创建 registry 容器,这里要监听 22 和 5000 端口

docker run -d -p 127.0.0.1:33307:22 -p 127.0.0.1:5000:5000 centos-registry

测试:

[root@docker-base docker-temp]# curl 127.0.0.1:5000

出现:”docker-registry server (dev)”  代表 registry 进程自动了

第三步,配置 nginx:
 
yum -y install nginx
service nginx start
 
echo -e “server {\n    listen 80;\n    server_name registry.linuxidc.com;\n    location / {\n        proxy_set_header Host \$host;\n        proxy_pass http://127.0.0.1:5000/;\n}\n}” >>/etc/nginx/conf.d/virtual.conf
 
service nginx reload
 
echo “127.0.0.1 registry.linuxidc.com” >> /etc/hosts

测试:

[root@docker-base docker-temp]# curl registry.linuxidc.com

出现 “docker-registry server (dev)” 代表成功

第四步,使用自己的 registry 服务器

把本机镜像 tag 一下:
 
docker tag centos-newssh registry.linuxidc.com/centos-newssh

把刚才 tag 的镜像 Push 到 registry 服务器上:

docker push registry.linuxidc.com/centos-newssh

第五步,换台服务器配置 hosts 文件,比如我的 registry 服务器 IP 是 192.168.56.101,

在另外一台服务器上 192.168.56.102 上配置 hosts
 
echo “192.168.56.101 registry.linuxidc.com” >> /etc/hosts
 

然后执行:

docker pull registry.linuxidc.com/centos-newssh

创建容器:docker run -d -p 127.0.0.1:33306:22 -m 256M registry.linuxidc.com/centos-newssh

登陆:ssh root@127.0.0.1 -p 33306

密码是:123456

这样我们的私服就利用起来了。

前面我们在 192.168.56.101 上有了 registry.linuxidc.com 私有的镜像源服务器,并且有了 registry.linuxidc.com/CentOS-newssh 镜像。

今天我们在 192.168.56.103 上制作 DNS 服务镜像,当然最好有点 bind9 的经验。

第一步,配置 Hosts,获取 docker 镜像:

echo “192.168.56.101 registry.linuxidc.com” >> /etc/hosts

第二步,这里需要注意 udp 协议,256M 是内存大小:

docker run -d -p 127.0.0.1:33306:22 -p 53:53 -p 53:53/udp 256M registry.linuxidc.com/centos-newssh
 

第三步:登陆容器

ssh 127.0.0.1 -p 33306

第四步:安装 bind9

yum install bind bind-utils -y

第五步:修改配置文件 /etc/named.conf,options 参看下面:

options {
    forwarders {8.8.8.8; 8.8.4.4;};
    listen-on port 53 {any;};
    listen-on-v6 port 53 {::1;};
    directory  “/var/named”;
    dump-file  “/var/named/data/cache_dump.db”;
        statistics-file “/var/named/data/named_stats.txt”;
        memstatistics-file “/var/named/data/named_mem_stats.txt”;
    allow-query    {any;};
    recursion yes;
 
    dnssec-enable yes;
    dnssec-validation yes;
    dnssec-lookaside auto;
 
    /* Path to ISC DLV key */
    bindkeys-file “/etc/named.iscdlv.key”;
 
    managed-keys-directory “/var/named/dynamic”;
};
 

在 /etc/named.conf,假设咱们的域名是 linuxidc.com 文件中添加

zone “linuxidc.com” {
    type master;
    file “db.linuxidc.com”; 
};
 

第六步:进入 /var/named/,添加 db.linuxidc.com,内容如下:

$TTL    604800
@      IN      SOA    linuxidc.com. www.linuxidc.com. (
                              3        ; Serial
                        604800        ; Refresh
                          86400        ; Retry
                        2419200        ; Expire
                        604800 )      ; Negative Cache TTL
;
@      IN      NS      linuxidc.com.
@      IN      A      192.168.56.101
registry    IN      A      192.168.56.101
*      IN      A      192.168.56.101
 

第七步:启动 named 服务:
 
service named start

第八步:由于容器里面不能修改 dns 所在退出容器,修改 /etc/resolv.conf:
 
mv /etc/resolv.conf /etc/resolv.conf.bak
echo “nameserver 192.168.56.103” >/etc/resolv.conf

第九步:测试,安装 bind-utils

yum -y install bind-utils

测试:
 
dig @192.168.56.103 . linuxidc.com

如果有反应就说明成功了。

第十步:去掉 /etc/hosts 里面的 192.168.56.101 registry.linuxidc.com 测试:

curl registry.linuxidc.com

会出现跟配置 Hosts 一样的效果,以后只要把新的机器的 dns 配置成 192.168.56.103 就好了。

后记:

这里只是完成了 dns 服务的安装和使用,写一个 Dockerfile 就可以制作成镜像了,后面有时间再写个脚本。

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计9951字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7984800
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025 年 11 月 28 日 -Cloudflare 史诗级事故: 一次配置失误,引爆全球宕机 前言 继今...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛 NAS-2:飞牛配置 RAID 磁盘阵列 前言 大家好,我是星哥之前星哥写了《星哥带你玩飞牛 ...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...