Docker虚拟化技术

网摘:
http://tech.uc.cn/?p=2726
http://dockerpool.com/static/books/docker_practice/index.html
http://yuedu.baidu.com/ebook/d817967416fc700abb68fca1?pn=1

//http://mirrors.yun-idc.com/epel/6/x86_64/epel-release-6-8.noarch.rpm
//wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

#docker本地库
https://docs.docker.com/registry/deploying/

#centso7安装docker
https://docs.docker.com/installation/centos/

CentOS 6 安装
1.准备好需要安装的yum源(比较麻烦)
    rpm -ivh epel-release-6-8.noarch.rpm

2.安装
yum update -y

yum install -y lxc libcgroup

yum install -y docker-io

3.操作
service docker start
chkconfig docker on

##从docker hub上查找image
docker search centos
#从docker hub上拉取centos镜像
docker pull centos:6
#导出镜像(镜像id或名称)
docker save tomcat > /tmp/tomcat.tar

#导入镜像
docker load < /tmp/tomcat.tar

#查看镜像
docker images
docker images --no-trunc
#删除image
docker rmi b5e4c1b6e097

#删除虚拟机(注意需要查看 docker ps -a 查看, docker stop d323rsa22asfda停止)
docker rm d323rsa22asfda


连接到虚拟机
docker attach d323rsa22asfda



#启动docker容器
-d:表示后台启动
-p:端口映射
(run命令包含  create 和start两个命令)
#没有带参数均为默认启动方式
docker run -i -t tomcat:latest
#端口映射宿主机的8888端口就能访问docker虚拟机的8080端口
docker run -d -p 8888:8080 tomcat:latest
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:latest
docker run --name mydb -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:latest
#带参数的启动虚拟机
----docker run -i -t tomcatwh:latest "catalina.sh run"
----docker run -i -t mysqlwh:latest "/bin/bash"

停止虚拟机
docker stop mydb
启动虚拟机
docker start mydb

查看虚拟机的状态
docker ps -l
docker ps -a

centso7安装

#更新
yum update -y

#创建一个docker yum源
cat >/etc/yum.repos.d/docker.repo <<-EOF
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF

#安装docker
yum install docker-engine

#启动docker服务(有可能出错)
service docker start

#出错原因:关SELinux
vi /etc/sysconfig/selinux
reboot



docker images --tree

#docker网络
ocker启动时,会在宿主主机上创建一个名为docker0的虚拟网络接口,
默认选择172.17.42.1/16,一个16位的子网掩码给容器提供了65534个IP地址。
docker0只是一个在绑定到这上面的其他网卡间自动转发数据包的虚拟以太网桥,
它可以使容器和主机相互通信,容器与容器间通信。

#删除docker0网桥
service docker stop
ifconfig docker0 down
brctl delbr docker0

#修改eth0网卡配置文件ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
BRIDGE=br0

#添加网桥配置文件ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.0.0.101
NETMASK=255.255.255.0
GATEWAY=10.0.0.2

#重启网络
service network restart

#修改docker配置文件,使用br0网桥
vi /etc/sysconfig/docker
other_args="-b=br0"

退出container但是保持运行
默认情况下,如果输入exit退出container,那么container也会stop
按ctrl+p+q可以退出到宿主机,而保持container仍然在运行

猜你喜欢

转载自houston123.iteye.com/blog/2316572