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

上一篇:Dubbo -- 系统学习 笔记 -- 示例 -- 多协议


下一篇:java 28 - 7 JDK8的新特性 之 接口可以使用方法