Docker 基本命令说明
1.Docker使用环境linux,windows,mac
linux 要求:
centos6.x(kernel 版本必须2.6.32-431或更高)
需要安装EPEL
rpm -ivh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
yum -y install docker-io
centos7.x
yum -y install docker
windows要求:
Oracle VM VirtualBox,boot2docker
mac要求:
Oracle VM VirtualBox,boot2docker
2.Docker基本概念
镜像:
Docker 镜像就是一个只读的模板。
例如:一个镜像可以包含一个完整的 CentOS 操作系统环境,里面仅安装了 httpd或用户需要的其它应用程序,也可以简单linux系统,只包含必要的软件。
镜像可以用来创建 Docker 容器。
Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜
容器:
Docker 利用容器来运行应用。
容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。
可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
*注:镜像是只读的,容器在启动的时候创建一层可写层作为最上层。
远程仓库:
仓库是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
仓库分为公开仓库(Public)和私有仓库(Private)两种形式。
hub.docker.com
www.daocloud.io
hub.tenxcloud.com
3.Docker基本使用命令
2.1 docker服务的启动,关闭
service docker stop
service docker start
如iptables跟docker发生冲突,重启docker,让docker重新加检测iptables规则,就行了。
2.2 docer 基本命令
docker run -p 28080:8080 -t -i centos-tomcat:1.0
docker run -p 28080:8080 centos-tomcat:1.0
docker run -t -i centos:6.8 /bin/bash
docker run -d -p 122:22 centos-tomcat:1.0
2.2 docer 基本命令
docker查询相关命令
docker images (列出所有镜像)
docker ps (运行的容器)
docker ps -a (所有容器)
docker exec -it (所有容器) bash
2.3 网络与磁盘挂载
采用普遍采用桥接模式,docker和宿主机之间形成一个独立虚拟网络,对外端口宿主机和docker使 用一个宿主ip,通过不同的port采用iptables方式路由到docker上
一般实用参数
-p 28080:8080 添加对外端口
--add-host mysql.1haigui.com:192.168.2.20 把该域名解析添加到host中去。
--dns 114.114.114.114
一般情况宿主机与docker容器是隔离没法进行交互的,可以通过磁盘挂载的方式,实现宿主机上磁盘系统挂载到docker上去
docker run -d -v /app/docker_registry:/var/lib/registry -p 5000:5000 --restart=always registry
宿主机目录会自动建立,如果容器关闭或销毁,磁盘文件依然存在
2.3 docker导出导入
解决镜像的备份与迁移问题
docker export 7691a814370e > ubuntu.tar
cat ubuntu.tar | sudo docker import - test/ubuntu:v1.0
docker import http://example.com/exampleimage.tgz example/imagerepo
2.3 docer 例子
docker pull nginx
docker run -p 8011:80 nginx
docker exec 容器ID
docker attach 容器ID
docker rmi -f 镜像ID