Docker此例简单介绍docker的安装、使用以及打包

来源:互联网 发布:淘宝刻假章警察会查吗 编辑:程序博客网 时间:2024/05/21 06:37

Docker 拓展连接
此例简单介绍docker的安装、使用以及打包
一:安装

1.安装条件: (1)64位CPU架构. (2)内核版本为3.10及以上的Linux系统. (3)开启cgroup和namespace功能2.开始安装: 用sudo权限或者切换root用户, (1)通过yum安装 : $ sudo yum install docker-engine (2)通过脚本安装: $ curl -fsSL https://get.docker.com/ | sh3.以daemon方式开启docker服务: $ sudo service docker start4.验证安装是否成功: $ sudo docker run hello-world5.建议: 由于docker daemon 必须用root/sudo权限运行,为避免每次使用sudo,可创建一个具有root权限的docker组,并将用户添加到该组。6.将docker服务加入系统启动项: $ sudo chkconfig docker on

二:使用

基本使用命令:1.查看docker环境: $ docker info2.查看docker命令: (1) 所有命令: $ docker (2) 某条命令: $ docker xxx --help3.启动一次性运行的容器(并在容器中执行命令): $ docker run ubuntu:16.04 /bin/echo 'Hello world'4.启动交互模式容器: $ docker run -t-i ubuntu:16.04 (-t:开启一个终端, -i:以交互模式运行)5.启动后台模式容器: $ docker run -d ubuntu:14.04 /bin/sh (-d:以后台Daemon方式运行,执行成功后会返回一个该容器的ID)6.指定容器启动后的名字: $ docker run -i -t --name mytest ubuntu:14.04 /bin/bash (--name:指定启动后的容器名字,如果不指定则docker会帮我们取一个名字)7.以映射端口方式启动一个Web容器: (1) $ docker run -d -P (-P:端口映射,外部端口到容器端口的映射规则由docker负责) (2) $ docker run -d -p 5000:5000 (-p:自己指定端口映射规则,格式为:-p ip:host port:port,将当前物理机的ip的端口映射到容器的端口) 通过 $ docker ps -l,可以查看到其端口列的端口映射规则, 通过$ docker port 容器ID或容器名称 可快捷查看容器的端口8.查看容器的具体信息: $ docker inspect 容器ID或容器名称9.对运行着的后台容器进入执行命令: $ docker exec -it 容器ID /bin/bash10.查看容器的日志: $ docker logs -f 容器ID或容器名称 (-f:以滚动的形式查看日志)11.重启容器: $ docker restart 容器ID12.暂停容器: $ docker pause 容器ID / $ docker unpause 容器ID13.停止容器: $ docker stop 容器ID或容器名称14.杀死容器: $ docker kill 容器ID或容器名称15.删除容器: $ docker rm 容器ID或容器名称 (正在运行的容器不能删除)16.把一个宿主机上的目录挂载到镜像里: $ docker run -it -v /home/dock/Downloads:/usr/Downloads ubuntu64 /bin/bash (-v:冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径) 默认挂载的路径权限为读写。如果指定为只读可以用ro: $ docker run -it -v /home/dock/Downloads:/usr/Downloads:ro ubuntu64 /bin/bash17.一个容器定义的一个数据挂载信息。其他的容器启动可以直接挂载数据卷容器中定义的挂载信息: $ docker run -v /home/dock/Downloads:/usr/Downloads --name dataVol ubuntu64 /bin/bash $ docker run -it --volumes-from dataVol ubuntu64 /bin/bash (--volumes-from:用来指定要从哪个数据卷来挂载数据)

三:网络

Docker使用linux桥接,在主机虚拟一个docker0网络接口,在主机中运行命令查看:1.查看所有桥接: $ sudo brctl show2.查看docker0 IP地址: $ sudo ifconfig docker0docker0docker启动一个容器时会会根据docker0的网段划分容器的IP,docker0是每个容器的网关. docker在使用linux brigde时会找最合适的。但是有时候还是需要自己规划.1.关闭网桥docker0, 添加自己的网桥bridge0: $ sudo ifconfig docker0 down $ sudo brctl addbr bridge0 $ sudo ifconfig bridge0 192.168.227.1 netmask 255.255.255.02.Docker startup file中添加启动自定义网桥参数, 启动Docker: $ echo "DOCKER_OPTS=\"-b=bridge0\"" >> /etc/default/docker $ sudo service docker start3.查看自定义网桥是否启动成功, ip等配置是否正确: $ sudo ifconfig bridge04.启动容器, 在容器中查看IP和路由信息: $ docker run -i -t xxxx /bin/bash $ ifconfig eth0 $ route -ndocker默认是允许容器互通, 通过-icc=false关闭互通. 一旦关闭了互通,只能通过-link name:alias命令连接指定容器. 容器互相隔离的情况下,假设我们有一个webapp容器,一个redis容器需要互通:1.先启动redis容器: $ docker run -d --name redis crosbymichael/redis2.再启动webapp并联通到redis, 将redis取别名为db: $ docker run -t -i --link redis:db --name webapp ubuntu bash3.容器中/etc/hosts中生成对应的ip映射: $ cat /etc/hosts

四:打包

docker镜像操作:1.镜像查看: (1) 所有镜像: $ docker images (2) $ docker inspect 镜像ID2.制作镜像: (1) 通过Dockerfile构建镜像: 创建目录, 在该目录下创建Dockerfile: $ touch Dockerfile 在当前路径下创建镜像$ docker build -t username/imagename . (-t:tag名称) (2) 对运行着的容器commit镜像: docker commit -m "xxx" -a "xxx" 容器ID 镜像名称 (-m:提交注释, -a:作者) (3) 给镜像打标签: docker tag 容器ID 镜像名称
0 0
原创粉丝点击