Docker

Docker 再学习 (11) Docker Volume

Submitted by Lizhe on Mon, 03/11/2019 - 11:38

 

 

lizhedeMacBook-Pro:study lizhe$ cat docker-compose.yaml 

version: "3.2"

services:

  nginxservice:

    image: nginxdemos/hello

    ports:

      - "80:80"

    volumes:

      - type: volume

        source: mydata

        target: /tmp

      - type: bind

        source: ./nginx/logs

        target: /var/log/nginx

volumes:

  mydata:

lizhedeMacBook-Pro:study lizhe$

 

Hybris in Docker (2)

Submitted by Lizhe on Tue, 03/05/2019 - 16:45

 

lizhedeMacBook-Pro:hybrisImage lizhe$ docker run -p 9090:9000 -e "MINIO_ACCESS_KEY=admin123" -e "MINIO_SECRET_KEY=nimda123" -d --name jonminio minio/minio server /data

 

lizhedeMacBook-Pro:hybrisImage lizhe$ docker run --name jonsolr -p 8983:8983 -d -it pacteradeg/hybris-solr:1808 /solrdata

 

 

Hybris in Docker (1)

Submitted by Lizhe on Mon, 03/04/2019 - 16:30

这里首先我尝试了一下使用常规安装命令打了一个镜像

 

FROM centos:7 as base
MAINTAINER Lizhe "zhe.li4@pactera.com"

RUN yum -y install wget


COPY ./docker-init-files/hybris/jdk-8u201-linux-x64.rpm /opt/
RUN yum -y install /opt/jdk-8u201-linux-x64.rpm

RUN wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && \
     yum makecache && \
     yum -y install unzip 

RUN chmod -R 777 /opt

FROM base as pre-hybris

Docker 再学习 (10) Docker Compose和Docker Stack区别

Submitted by Lizhe on Wed, 02/27/2019 - 12:14

 

一开始接触 docker-compose.yaml的时候使用的都是 docker-compose up 命令, 但是在 yaml 文件中加入了 deploy 希望得到多个copy的时候它总提示

docker-compose up 不支持 deploy 属性

然后让使用 docker stack deploy 命令, 那么这里我的疑问在于 这两种方式调用 yaml 配置文件到底有什么区别

原来

 

Swarm模式已经在1.12中集成到Docker Engine中,并给我们带来了几个新工具。 其中,我们可以在不安装Docker Compose的情况下,可以使用docker-compose.yml文件来提供堆栈的Docker容器

 

区别:

1. stack 命令不支持build

2. docker compose 不支持 deploy

3. docker stack 是使用 go 语言创建的内建命令

4. docker compose 是使用python 语言构建的第三方命令

Docker 再学习 (8) docker compose

Submitted by Lizhe on Tue, 02/26/2019 - 14:02

 

先初始化一个swarm

[root@machine1 ~]# docker swarm init --advertise-addr 172.16.166.135
Swarm initialized: current node (p4naje76eqgmvsf3wtcjx58ws) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-0w4jrw1p1pd8t43gwqzssuhzzqqe8cl6bfx72t7r4ks2ouq0uj-5c6w8mftv7m5rmsdtv81uqyum 172.16.166.135:2377

Docker 再学习 (6) Docker machine

Submitted by Lizhe on Mon, 02/25/2019 - 15:58

我使用的环境是

docker1 172.16.166.135
docker2 172.16.166.136

1. 安装docker machine

base=https://github.com/docker/machine/releases/download/v0.16.0 &&
  curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&
  sudo install /tmp/docker-machine /usr/local/bin/docker-machine

 

安装bash completion script,这样bash可以通过tab来补全命令和参数:

Docker 再学习 (5) Swarm 的 overlay 网络

Submitted by Lizhe on Sat, 02/23/2019 - 22:25

 

docker1

[root@docker1 ~]# docker swarm init --advertise-addr 192.168.186.133
Swarm initialized: current node (1l1piabkdtxhxbxqww6i389zo) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-5d2ygkplafv3xhxodgpshyfgemynvmj6220rf69lg32m127sdm-9us67nv7u2g2ny5enjcokm95l 192.168.186.133:2377

Docker 再学习 (4) 基于 consul 的 overlay网络

Submitted by Lizhe on Sat, 02/23/2019 - 14:17

为支持容器跨主机通信, Docker 提供了 overlay driver , 使用户可以创建基于VxLAN的overlay网络.

VxLAN 可以将二层数据封装到UDP进行传输, VxLAN 提供与 VLAN 相同的以太网二层服务, 但是拥有更强的扩展性和灵活性.

overlay网络 需要一个key-value 数据库用于保存网络状态信息, 包括 Network, Endpoint, IP 等

consul, etcd, zookeeper 都是docker支持的 key-value 软件, 这里使用 consul 来做第一个例子

docker1        192.168.186.133

docker2        192.168.186.132