一 应用场景描述
现在需要搭建一个内部邮件服务器用于接收zabbix报警信息,邮件服务器选用iRedmail开源邮件系统。但是由于可用服务器不多,邮件服务器的使用压力也不大,于是考虑在一台空闲的物理机上安装KVM虚拟机或者Docker容器的方式来部署iRedmail邮件服务器。考虑到目前Docker容器很流行的,使用KVM虚拟机还要配置和管理KVM虚拟机,不如使用Docker容器来得方便。于是就有了这篇文章。
二 Docker基础知识
目前最新版本的Docker在CentOS6.5上运行不良,最好升级操作系统到CentOS7并升级内核到4.0以上,以下有说明。
在CentOS7上面安装Docker
yum -y install docker*
启动Docker服务
service docker start
获取最近的CentOS镜像
docker pull centos
获取CentOS6的镜像
docker pull centos:6
查看本地所有的镜像
docker p_w_picpaths
查看单个镜像
docker p_w_picpaths centos
docker run -v /usr/sbin:/usr/sbin --rm centos /usr/sbin/ip addr show
--rm 容器停掉后会被删除
docker run -v /usr/sbin:/usr/sbin --name=test centos /usr/sbin/ip addr show
--name 给容器改名字
docker start -i test 开启test容器
docker run --name=mybash -it centos /bin/bash
可以在容器中安装软件
yum -y install net-tools
docker ps -a列出所有的容器
docker ps 列出正在运行的容器
docker start -ai mybash 开启容器
docker run --name="log_test" -v /dev/log:/dev/log --rm centos logger "Testing logging to the host"
journalctl -b | grep Testing
docker inspect mybash 查看容器的元数据信息
docker inspect --format='``.`NetworkSettings`.`IPAddress`' mybash
docker inspect --format='``.`State`.`Pid`' mybash
docker inspect --format='``.`HostConfig`.`PortBindings`' mybash
docker exec 在一个运行中的容器中执行命令
docker exec -it mybash /bin/bash
docker stop mybash
docker kill --signal="SIGHUP" mybash
docker rm goofy_wozniak