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

linux docker安装 制作Elasticsearch容器镜像 并上传docker hub

2017-06-16 18:22 1056 查看

1 linux docker下载安装 创建操作系统并启动容器

1.ubuntu系统下载docker

apt-get install -y docker.io
#查看docker版本
docker version


2.docker 拉取镜像

#拉取ubuntu镜像或者拉取centos镜像,并创建容器,取决于你想要docker为什么系统,我需要的系统为centos

docker pull centos
docker run -i -t centos:latest /bin/bash
#docker pull ubuntu
#docker run -t -i ubuntu /bin/bash
#退出并停止容器
exit
#或者只退出容器并不停止
ctrl+p 然后ctrl+Q
#查看docker images
docker images
#查看docker运行过的容器
docker ps -a




3.docker 容器启动方式

方法1

#8924284ea7f2为容器CONTAINER ID,见截图。以下为启动ID号为8924284ea7f2,并attach调出后台容器
docker start  8924284ea7f2
docker attach 8924284ea7f2


方法2

#fervent_torvalds为容器的名字,可通过docker ps -a 查询
docker start -ai fervent_torvalds
#也可更改容器名字 docker rename fervent_torvalds MLforZ


2 容器内安装Elasticsearch,或者你需要的其他软件等操作

1.centos的下载工具yum更新,以及安装wget断点下载工具

yum update
yum install wget


2.安装java,ES 5要求java1.8

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz"
tar xzf jdk-8u131-linux-x64.tar.gz

#修改java安装目录
yum install vim
vim ~/.bashrc
source ~/.bashrc
java -version


3.安装ES

下载并解压ES

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.0.tar.gz tar -zxvf elasticsearch-5.3.0.tar.gz


ES不能使用root用户启动,所以创建普通用户es,并给予操作ES安装目录的权限

groupadd es
useradd es -g es -p es
passwd es
chown -R es:es elasticsearch-5.3.0


进入es账户,启动es

su es

cd elasticsearch-5.3.0/bin/

./elasticsearch


Note:如果ES需要外部非localhost连接,需要修改配置文件的IP

#在docker直接查看/etc/hosts文件
vim /etc/hosts
#结果如下,可知ip为172.17.0.4:
127.0.0.1       localhost
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.4      8924284ea7f2


vim elasticsearch.yml
#修改elasticsearch.yml文件中IP和端口号,其中172.17.0.4为上一步骤从/etc/hosts查看得到
network.host: 172.17.0.4
http.port: 9200
#然后用普通用户es重启ES,就可以外部访问啦




2 把容器制作成备份镜像,并push到docker hub

把容器制作成images镜像(名字不能有大写字母,会出现)

docker commit 8924284ea7f2 elasticsearch:latest


首先到https://hub.docker.com/account/signup/ 创建账号,然后邮件激活后,create一个elasticsearch的仓库,此处我的账户名为xmojiao,新建的仓库名为elasticsearch。

接着在命令行测试登录

docker login
#然后输入docker hub的用户名和您的密码,登录成功出现Login Successed<
4000
/code>


给新创建的镜像打上tag并push到仓库中,其中xmojiao为docker hub账户名字,elasticsearch为新建的仓库名字,latest为tag.

docker tag d0cb7231d5d6 xmojiao/elasticsearch:latest
docker push xmojiao/elasticsearch:latest




3 docker其他常用操作

1.退出容器

退出时,使用[ctrl + D],这样会结束docker当前线程,容器结束,可以使用[ctrl + P][ctrl + Q]退出而不终止容器运行

2.批量删除已经停止的容器,在运行的不会被删除

长期操作导致大量的容器堆积,需要对这些没有用的容器进行批量删除

Docker rm `docker ps -a |awk '{print $1}' | grep [0-9a-z]`


1> docker rm 支持多个容器id 用“ ” 将多个容器连接起来进行批量删除

2> “ 可以将中间的命令处理结果作为 rm 命令的输入

3> awk 命令将ps得到的所有容器ID,但其中包含了 Container ID 这个列的表头,所以需要删去

4> 用grep 命令进行删除,支配小写的字母和数字

3.备用命令

systemctl start docker
systemctl enable docker
apt-get install -y febootstrap


4.后续使用 docker

docker ps -a
#发现名字为MLforZ的容器状态为exctied(0)即为已停止
docker images
docker start -ai MLforZ
#打开此容器但是如果需要此容器后台启动,退出时需要使用快捷键ctrl+p ctrl+q,再次使用docker ps -a,发现状态没有exctied(0)即为后台在运行


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息