您的位置:首页 > 运维架构 > Docker

docker安装与应用

2016-06-28 17:47 651 查看
docker安装:

安装curl:sudo apt-get install curl

安装docker:curl –sSL https://get.docker.com | sudo sh

设置普通用户执行:sudo usermod –aG docker your-user

重新登录

docker核心概念:

image:创建容器的模板。可以根据一套模板在同一台主机上迅速创建出多个容器。各容器间初始存储情况和设置情况相同。image不能在不同机器上直接迁移,需要导出成文件,移到其他机器后再导入成image。

container:进程+独立存储空间。不能直接复制也不能直接在机器间迁移。此类需求要先将container固化成image,再按上面方法进行迁移。

docker仓库:

存放image的地方,类似git repository,可以是公共的地址,也可以搭建自己的私有库。

docker常用命令:

启动:

 docker run xx_image     //从镜像建立一个新容器并启动

docker start xx_container  //直接启动容器

停止容器:

docker stop xx_container

连上运行中的容器:

docker attach xx_container

以交互式启动container:

docker run –i –t xx_image 

 docker start -i --interactive xx_container

查看日志:

docker logs xx_container

删除容器:

docker rm xx_container

删除镜像:

docker rmi xx_image

把容器固化成镜像:

docker commit xx_container xx_image

导出容器到文件:

docker export xx_container > ./xx_container_file

导入容器文件到镜像:

cat xx_container_file |docker import - xx_image

导出镜像到文件:

docker save xx_image > ./xx_image_file

导入镜像文件:

docker load -i xx_image_file

Docker使用私有仓库:

建立私有仓库:docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry --restart=always registry

在每个使用这个仓库的机器上的/etc/default/docker 里增加一句:

DOCKER_OPTS="$DOCKER_OPTS --insecure-registry=<ip>:5000"

上传image: 

docker tag xx_image <ip>:5000/xx

docker push <ip>:5000/xx

下载image:

docker pull <ip>:5000/xx

删除私有库中的镜像:

curl -X DELETE localhost:5000/v1/repositories/ubuntu/tags/latest  (只是删除标签,不真正删除文件)

Dockerfile:

创建container的命令序列。可以根据文件指示自动完成container及其上的服务的创建和启动。

示例:

FROM <ip>:5000/xx

ADD ./net.sh /root

RUN chmod 755 /root/net.sh

CMD /root/net.sh && /bin/bash

net.sh:

#!/bin/bash

hostname aabbcc

ifconfig eth0 192.168.2.75 netmask 255.255.255.0

route add default gw 192.168.2.74

echo "192.168.2.75 aabbcc">> /etc/hosts

集群部署方案比较:

docker:

container启动非常迅速,物理存储也具有独立性,但网络配置比较麻烦,尤其是跨宿主机的container。最适合的场景是在性能强大的单机上迅速部署多个计算密集型(非IO密集型)虚拟机。

如需跨越物理机共享image,要借助image导出文件或Dockerfile。

如果想利用docker保持开发环境和上线环境一致,那么需要开发时就要在container中进行。

虚拟机:

虚拟机需要在各物理机上安装虚拟机软件,空间占用大、效率低。好处是各虚拟机完全物理隔离,虚拟机迁移可直接进行文件拷贝,且允许跑在不同操作系统的机器上。

物理机:

各物理机要尽量保持操作系统一致、集群部署时容易遗漏文件和配置项。好处是不需要做额外工作,物理文件可见,节点故障后容易恢复。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: