Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1827587
  • 博文数量: 636
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 3950
  • 用 户 组: 普通用户
  • 注册时间: 2014-08-06 21:58
个人简介

博客是我工作的好帮手,遇到困难就来博客找资料

文章分类

全部博文(636)

文章存档

2024年(5)

2022年(2)

2021年(4)

2020年(40)

2019年(4)

2018年(78)

2017年(213)

2016年(41)

2015年(183)

2014年(66)

我的朋友

分类: 系统运维

2017-07-28 18:53:27

一、windows 7下安装docker
1、下载Docker Toolbox,下载地址:
2、默认安装Docker Toolbox即可
3、安装好后,启动Docker Toolbox terminal,等待配置结束,显示虚拟机IP地址,出现命令符$
注:1)出现Error with pre-create check: "This Computer doesn't have VT-x/AMD-v enabled. Enabling it in the BIOS is mandatory",则需要去BIOS开启VT
2)如果boot2docker.iso下载失败,可以手工下载然后放到C:\Users\Administrator\.docker\machine\cache\目录
4、执行命令确认
#查看版本
docker version
#查看信息
docker info
5、进入虚拟机
1)命令行下进入虚拟机,默认docker账号
docker-machine ssh default
#切换root权限
sudo -i
2)SecureCRT连接虚拟机192.168.99.100, 账号docker密码tcuser
6、镜像加速
docker-machine ssh default
sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=加速地址 |g" /var/lib/boot2docker/profile 
exit
docker-machine restart default
7、下载镜像
docker pull centos:latest
8、启动镜像
docker run --restart always --privileged -dit --name centoslatest  docker.io/centos:latest /bin/bash
9、本地进入虚拟机
docker-machine ssh default
sudo -i
#增加新IP,eth1为192.168.99.101的网卡
ifconfig eth1:0 192.168.99.101 netmask 255.255.255.0 up
echo "ifconfig eth1:0 192.168.99.101 netmask 255.255.255.0 up" >> /opt/bootlocal.sh
#查看容器IP
docker inspect -f '{{.NetworkSettings.IPAddress}}' centoslatest

#增加转发,192.168.99.101为新增地址,172.17.0.2为容器IP

iptables -t nat -A PREROUTING -d 192.168.99.101 -j DNAT --to-destination 172.17.0.2
iptables -t nat -A POSTROUTING -d 172.17.0.2 -j SNAT --to 172.17.0.1

#开启IP转发
echo 1 > /proc/sys/net/ipv4/ip_forward  
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
#防火墙开启转发
iptables -F
至此访问192.168.99.101即访问容器


二、Redhat 7.X安装docker

1、确认内核版本uname -r,版本3.10以上
2、修改yum源
3、yum install -y docker

4、镜像加速

sudo cp /lib/systemd/system/docker.service /lib/systemd/system/docker.service.bak

sudo sed -i "s|\(ExecStart=/usr/bin/docker[^ ]*\)|\1 --registry-mirror="加速地址"|g" /lib/systemd/system/docker.service

5、重加载配置
sudo systemctl daemon-reload
6、启动docker服务
sudo service docker start

7、下载镜像
docker pull centos:latest

8、启动容器
docker run --restart always --privileged -dit --name centoslatest  docker.io/centos:latest /bin/bash

9、进入容器
docker attach

使用[ctrl + D],这样会结束docker当前线程,容器结束,可以使用[ctrl + P][ctrl + Q]退出而不终止容器运行
切换root权限
sudo -i


10、增加独立IP

sudo -i
#增加新IP,eth1为192.168.1.10的网卡

ifconfig eth1:0 192.168.1.10 netmask 255.255.255.0 up

#永久增加虚拟网卡
echo -e "DEVICE=eth0:0\nBOOTPROTO=static\nIPADDR=192.168.1.10\nNETMASK=255.255.255.0\nONBOOT=yes" > /etc/sysconfig/network-scripts/ifcfg-eth0:0
sudo /etc/init.d/networking restart

#查看容器IP
docker inspect -f '{{.NetworkSettings.IPAddress}}' centoslatest

#增加转发,192.168.1.10为新增地址,172.17.0.2为容器IP

iptables -t nat -A PREROUTING -d 192.168.1.10 -j DNAT --to-destination 172.17.0.2
iptables -t nat -A POSTROUTING -d 172.17.0.2 -j SNAT --to 172.17.0.1

#开启IP转发
echo 1 > /proc/sys/net/ipv4/ip_forward  
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
#防火墙开启转发
iptables -F
至此访问192.168.1.10即访问容器


三、容器配置

1、ssh安装
yum install -y openssh-server
ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key  -N ''
sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config
sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config
#/usr/sbin/sshd -D
service sshd start


2、基本软件
yum install -y vim wget curl sudo passwd openssl
#ifconfig
yum install -y net-tools.x86_64
#lsb_release
yum install -y redhat-lsb
#crontab
yum -y install vixie-cron


3、其他环境配置


4、提交镜像
docker commit
docker commit centoslatest centosimage:last.20170208


5、保存镜像
sudo docker save > <路径>
sudo docker save centosimage:last.20170208 > /opt/centosimage:last.20170208.tar


6、恢复镜像
docker load < <路径>
docker load < /opt/centosimage:last.20170208.tar


四、其他常用命令
# 查看所有的容器
sudo docker ps -a


# 删除容器
sudo docker rm


# 查看所有的镜像
sudo docker images


# 删除镜像
sudo docker rmi


#一次性删除所有的容器
docker rm $(docker ps -q -a)
#一次性删除所有的镜像
docker rmi $(docker images -q)


# 显示镜像的所有层(layer)
sudo docker images --tree


#导出容器
sudo docker export [CONTAINER ID] > [路径]
比保存镜像小一些


#导入容器
cat <路径> | sudo docker import -


#查看容器进程
docker inspect -f "{{.State.Pid}}"


#查看容器IP
docker inspect -f '{{.NetworkSettings.IPAddress}}'  



#!/bin/bash


#1、yum 安装软件
yum install -y net-tools
yum install -y bridge-utils
yum -y install docker-io


#禁用selinux


#安装pipework
wget
unzip master.zip
cp ./pipework-master/pipework  /usr/local/bin/
chmod +x /usr/local/bin/pipework


#关闭网卡
service docker stop
ifconfig docker0 down
brctl delbr docker0


brctl addbr br0
brctl addif br0 eth0
ip addr del 192.168.94.157/24 dev eth0
ifconfig br0 192.168.94.157/24 up
route del default
route add default gw 192.168.94.1


#/lib/systemd/system/docker.service
#镜像加速和默认网桥
sudo cp /lib/systemd/system/docker.service /lib/systemd/system/docker.service.bak
sudo sed -i "s|\(ExecStart=/usr/bin/docker[^ ]*\)|\1 --bridge=br0 --registry-mirror=""|g" /lib/systemd/system/docker.service


systemctl daemon-reload
systemctl restart docker


ip link del docker0
#启动一个不带网络的容器
docker run -itd --name test --net=none centos /bin/bash


#给已经存在的名称为test的容器配置地址和网关
pipework br0 test 192.168.94.206/24@192.168.94.1


centos镜像配置

#基本软件
yum install -y vim wget curl sudo passwd openssl


#ssh
yum install -y openssh-server
ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key  -N ''
sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config
sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config
#/usr/sbin/sshd -D
service sshd start


#查看IP
ip addr ls eth0


#ifconfig
yum install -y net-tools.x86_64
#lsb_release
yum install -y redhat-lsb



阅读(881) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~