一、windows 7下安装docker
1、下载Docker Toolbox,下载地址:https://www.docker.com/products/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下载失败,可以手工下载https://github.com/boot2docker/boot2docker/releases/download/v1.12.6/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 <NAME 或 CONTAINER ID>
使用[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 <CONTAINER ID或NAME>
docker commit centoslatest centosp_w_picpath:last.20170208
5、保存镜像
sudo docker save <IMAGE ID> > <路径>
sudo docker save centosp_w_picpath:last.20170208 > /opt/centosp_w_picpath:last.20170208.tar
6、恢复镜像
docker load < <路径>
docker load < /opt/centosp_w_picpath:last.20170208.tar
四、其他常用命令
# 查看所有的容器
sudo docker ps -a
# 删除容器
sudo docker rm <CONTAINER ID>
# 查看所有的镜像
sudo docker p_w_picpaths
# 删除镜像
sudo docker rmi <IMAGE ID>
#一次性删除所有的容器
docker rm $(docker ps -q -a)
#一次性删除所有的镜像
docker rmi $(docker p_w_picpaths -q)
# 显示镜像的所有层(layer)
sudo docker p_w_picpaths --tree
#导出容器
sudo docker export [CONTAINER ID] > [路径]
比保存镜像小一些
#导入容器
cat <路径> | sudo docker import - <CONTAINER ID>
#查看容器进程
docker inspect -f "``.`State`.`Pid`" <CONTAINER ID>
#查看容器IP
docker inspect -f '``.`NetworkSettings`.`IPAddress`' <CONTAINER ID>
#!/bin/bash
#1、yum 安装软件
yum install -y net-tools
yum install -y bridge-utils
yum -y install docker-io
#禁用selinux
#安装pipework
wget https://github.com/jpetazzo/pipework/archive/master.zip
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="http://841e28b9.m.daocloud.io"|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
来源:oschina
链接:https://my.oschina.net/u/4276629/blog/4341848