Ubuntu 16.04 服务器上配置使用 Docker
Docker基础概念
在使用Docker之前,我们先了解下几个Docker的核心概念
Docker Daemon
Docker引擎,就是运行在后台的一个守护进程,在我们启动它之后,我们就可以通过Docker客户端发送相关Docker的命令。
Docker Images
Docker镜像,这个就类似于我们在安装Windows时的镜像,只不过windows的镜像,在以前我们通常存在光盘上或者U盘里,这里的镜像我们通常会发布到Docker Registry
Docker Containers
Docker容器,在获取到Docker镜像之后,我们可以运行该镜像,此时便会启动一个Docker容器,该容器中运行镜像中的程序。如果把Docker镜像理解为一个类的话,那么Docker容器就是一个实例
Docker Client
Docker客户端,我们安装完Docker之后,我们打开终端使用docker 相关命令进行操作,这些命令便是Docker客户端的命令,另外还有一个基于REST API的Docker客户端,REST API一般用于在开发一些基于Docker运维的系统中使用。
Docker Registry
Docker镜像注册中心,Docker的官网的注册中心为http://hub.docker.com。我们也可以自己搭建自己的注册中心。
以上是Docker的核心概念,下面我们来看如何使用Docker安装Redis、Zookeeper、Mysql,并在过程中,学习使用Docker Client的一些常用命令
安装
centos
yum install docker
systemctl start docker.service
systemctl enable docker.service
ubuntu 16.04
sudo apt-get update
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
sudo apt-add-repository 'deb https://apt.dockerproject.org/repo ubuntu-xenial main'
sudo apt-get update
apt-cache policy docker-engine
sudo apt-get install docker-ce
sudo apt-get install -y docker-engine
sudo systemctl status docker
官方源
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-commo
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
基本使用
ElasticSearch
docker pull docker.elastic.co/elasticsearch/elasticsearch:5.4.0
docker run -p 9200:9200 -e "http.host=0.0.0.0" -e "transport.host=127.0.0.1" docker.elastic.co/elasticsearch/elasticsearch:5.4.0
安装 head 插件(es 5.x)
docker run -p 9100:9100 mobz/elasticsearch-head:5
Redis
查找镜像
使用以下命令在Docker Hub搜索Redis镜像
docker search redis
拉取镜像
docker pull redis:latest
列出所有镜像
docker images
创建并启动容器
docker run -p 6379:6379 -v $PWD/data:/data -d redis:latest redis-server --appendonly yes
执行以上命令,我们就使用redis:latest镜像创建并启动了一个Redis容器,其中
-p 6379:6379:将容器的6379端口映射成主机的6379端口
-v $PWD/data:/data :将主机中当前目录下的data挂载到容器的/data
redis-server --appendonly yes : 在容器执行redis-server启动命令,并打开redis持久化配置
查看容器
docker ps
连接redis容器
使用Redis镜像使用redis-cli客户端,连接到redis容器
docker run -it redis:latest redis-cli -h 192.168.0.101
Zookeeper
接下来我们安装zookeeper,我们使用和redis相同的方法。直接使用最少的步骤安装,不再做过多解释
查找zookeeper镜像
docker search zookeeper
拉取镜像
docker pull zookeeper
创建并启动容器
docker run -p 2181:2181 -v $PWD/data:/data -d zookeeper:latest
使用zookeeprt镜像创建并启动容器,我们把容器的2181映射到机器的2181上,同样把当前目录的data 挂载到容器的/data
查看当前容器列表
docker ps
列出所有的容器 ID
docker ps -aq
停止所有的容器
docker stop $(docker ps -aq)
删除所有的容器
docker rm $(docker ps -aq)
删除所有的镜像
docker rmi $(docker images -q)
删除所有不使用的镜像
docker image prune --force --all 或 docker image prune -f -a`
删除所有停止的容器
docker container prune -f
REFER:
https://docs.docker.com/engine/installation/
http://www.cnblogs.com/keepcodingforever/p/6698862.html
https://luyiisme.github.io/2017/05/06/elasticsearch-docker-on-one-vm/
https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html