Docker 学习文档
Docker 概述
Docker的思想来自于集装箱;
JRE – 多个应用(端口冲突)-- 原来都是交叉的!
隔离 : Docker核心思想,打包装箱,每个箱子是互相隔离的。
Docker通过隔离机制,可以将服务器利用到极致!
Docker的历史
Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源。
Docker能做什么
之前的虚拟机技术与Docker技术对比
虚拟机技术的缺点:
- 资源占用十分多
- 冗余步骤多
- 启动很慢
容器化技术
容器化技术不是模拟一个完整的操作系统
比较Docker和虚拟机技术的不同:
- 传统虚拟机,虚拟出一套硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
- Docker容器内的应用直接运行在宿主机的内核,容器没有自己的内核,也没有虚拟我们的硬件,所以就轻便了
- 每个容器间是相互隔离,每个容器都有一个属于自己的文件系统,互不影响
DevOps(开发、运维)
应用更快速的交付和部署
传统:一堆帮助文档,安装程序
Docker : 打包镜像发布测试,一键运行
更快捷的升级和扩容
使用了Docker之后,我们部署应用就和搭积木一样!
项目打包为一个镜像
更简单的系统运维
在容器化之后,我们的开发,测试环境都是高度一致的
更高效的计算资源利用
Docker是内核级别的虚拟化,可以在一个物理机上运行很多的容器实例,服务器的性能可以被压榨到极致。
Docker 相关概念
Docker基本组成
镜像
docker镜像就好比是一个模板,可以通过这个模板来创建容器服务。
tomcat镜像 ==> run ==> tomcat容器(提供服务)
通过这个镜像可以创建多个容器(最终运行或者项目运行都是在容器中的)。
容器
Docker利用容器技术,独立运行一个或者一组应用,是通过镜像来创建的。
有启动,停止,删除等Linux基本指令!
目前就可以把这个容器理解为一个简易的Linux系统
仓库
仓库就是存放镜像的地方,分为私有仓库和公有仓库;
Docker Hub(默认是国外的)
阿里云…都有容器服务器(配置镜像加速!)
系统环境查看
# 查看系统内核,是3.10以上的
uname -r
3.10.0-957.21.3.el7.x86_64
# 查看系统版本
cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
docker 安装
官方文档:docs.docker.com/engine/inst…
1、卸载旧的版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2、需要的安装包
sudo yum install -y yum-utils
3、设置镜像的仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.1、更新yum软件包索引, centos 8 去掉fast即可
yum makecache fast
4、安装docker相关的源 docker-ce 社区 ee 企业版
yum install docker-ce docker-ce-cli containerd.io
5、启动docker
systemctl start docker
6、使用docker version 查看是否安装成功
docker version
7、用docker 运行hello-world
docker run hello-world
8、查看下载的这个 hello-world 镜像
docker images
9、配置镜像加速,可按下图找到加速地址配置
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://s9uopd4b.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
Docker 常用命令
docker [option] --help
Docker 镜像
镜像是什么
镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,他包含运行某个软件所需的所有内容,包括代码、运行时库、环境变量和配置文件。
所有的应用,直接打包docker镜像,就可以直接跑起来!
如何得到镜像:
- 从远程仓库下载
- 拷贝
- 自己制作一个镜像 DockerFile
Docker镜像加载原理
UnionFs (联合文件系统)
UnionFs(联合文件系统):Union文件系统(UnionFs)是一种分层、轻量级并且高性能的文件系统,他支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下( unite several directories into a single virtual filesystem)。Union文件系统是 Docker镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像 特性:一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录
Docker镜像加载原理
docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统UnionFS。 boots(boot file system)主要包含 bootloader和 Kernel, bootloader主要是引导加 kernel, Linux刚启动时会加载bootfs文件系统,在 Docker镜像的最底层是 bootfs。这一层与我们典型的Linux/Unix系统是一样的,包含boot加载器和内核。当boot加载完成之后整个内核就都在内存中了,此时内存的使用权已由 bootfs转交给内核,此时系统也会卸载bootfs。 rootfs(root file system),在 bootfs之上。包含的就是典型 Linux系统中的/dev,/proc,/bin,/etc等标准目录和文件。 rootfs就是各种不同的操作系统发行版,比如 Ubuntu, Centos等等。
平时我们安装进虚拟机的CentOS都是好几个G,为什么Docker这里才200M?
对于一个精简的OS,rootfs可以很小,只需要包合最基本的命令,工具和程序库就可以了,因为底层直接用Host的kernel,自己只需要提供rootfs就可以了。
由此可见对于不同的Linux发行版, boots基本是一致的, rootfs会有差別,因此不同的发行版可以公用bootfs.
虚拟机是分钟级别,容器是秒级!
容器数据卷
作用:
容器内文件夹与宿主机文件夹映射,可实现文件同步修改,例如配置文件的修改,mysql数据文件映射保存,容器删除了容器内文件会删除,映射到宿主机的文件还在
服务在Docker启动后,如果要修改其中的一些文件,或者保存容器中的一些存储数据,如何去配置主机文件和Docker容器里文件的映射?
使用数据卷
- 直接 -v 指定
docker run -it -v /home/ceshi:/home centos /bin/bash
-
Dockerfile 中 通过 VOLUME 指定
# 创建一个dockerfile文件,名字可以随便 建议Dockerfile # 文件中的内容 指令(大写) 参数 FROM centos VOLUME ["volume01","volume02"] CMD echo "----end----" CMD /bin/bash #这里的每个命令,就是镜像的一层!
DockerFile
dockerfile
是用来构建docker镜像的文件,命令参数脚本!
构建步骤:
- 编写一个dockerfile文件
- docker build 构建成一个镜像
- docker run运行镜像
- docker push发布镜像(DockerHub 、阿里云仓库)
Docker 网络
-
理解Docker0
docker0是docker安装启动后默认的网络,所有启动的容器默认分配到docker0下,可以相互ping通。
-
Docker是如何处理容器间的网络访问的?
容器间的网络访问都是通过docker0网络桥接访问的,docker0相当于一个路由器,默认启动的docker容器都连接在这个docker0网络下,
用户也可以自定义网络桥接。
-
容器重启分配的容器网络ip可能会变,如何不写死,通过服务名访问?
- --link 原理:配置了host
- 自定义网络 docker network create
- 不同网段网络连通:docker network connect
原理:将容器添加到网段下,一个容器多个ip
IDEA整合Docker
搜索插件 Docker
发布spring-boot服务
#创建docker-spirng-boot文件夹
mkdir docker-spring-boot
cd docker-spring-boot
#准备spring-boot项目jar包放到此文件夹下,可以从镜像仓库拉取,可直接拷贝
---------------------------------------------------------------------------------------------------------
#编写Dockerfile文件
vim xxqa-usercenter-dockerfile
# Docker image for springboot file run
# VERSION 0.0.1
# Author: guanyp
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER guanyp <guanyp@xxxx.com>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名
ADD xxqa-usercenter-1.0-SNAPSHOT.jar xxqa-usercenter.jar
# 端口暴露,这里仅仅是声明暴露10081端口,启动容器时仍需要指定主机端口和容器端口映射,否则外网访问不通
EXPOSE 10081
# 运行jar包
RUN bash -c 'touch /xxqa-usercenter.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/xxqa-usercenter.jar"]
---------------------------------------------------------------------------------------------------------
#Dockerfile构建镜像
docker build -f xxqa-usercenter-dockerfile -t xxqa-usercenter .
docker build -f leaf-dockerfile -t leaf .
---------------------------------------------------------------------------------------------------------
#查看镜像
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
xxqa-usercenter latest b76e1ea1ce8d 16 seconds ago 798MB
leaf 1.0 d2a9e47f8090 20 hours ago 721MB
hello-world latest bf756fb1ae65 12 months ago 13.3kB
java 8 d23bdf5b1b1b 3 years ago 643MB
---------------------------------------------------------------------------------------------------------
#移除镜像
docker rmi leaf:1.0
---------------------------------------------------------------------------------------------------------
#启动leaf -p指定端口映射,主机端口:容器端口 --name 指定容器名称
docker run -d -p 8081:8081 -v /etc/localtime:/etc/localtime --name leaf d2a9e47f8090
#启动usercenter -v 主机时间和容器时间映射
docker run -d -p 10081:10081 -v /etc/localtime:/etc/localtime --name xxqa-usercenter xxqa-usercenter
#进入容器修改时区,java8中时区相差8小时,日志时间和主机对不上问题,所有容器都需要修改
docker exec -it leaf /bin/bash
echo "Asia/Shanghai" > /etc/timezone
cat /etc/timezone
Asia/Shangha
---------------------------------------------------------------------------------------------------------
#查看容器运行日志
docker logs -f -t --tail 100 xxqa-usercenter
---------------------------------------------------------------------------------------------------------
#查看运行的docker容器
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
805632110e0a b76e1ea1ce8d "java -Djava.securit…" 6 seconds ago Up 4 seconds 0.0.0.0:10081->10081/tcp xxqa-usercenter
b5b26423574a d2a9e47f8090 "java -Djava.securit…" About a minute ago Up About a minute 0.0.0.0:8081->8081/tcp leaf
---------------------------------------------------------------------------------------------------------
#测试启动的容器
curl "localhost:10081/im/user/17000009999"
{"errCode":"10000","errDesc":"业务处理成功","result":[],"success":true}
Docker compose
简介
前面我们已经知道, Docker 可以通过 Dockerfile build run 手动操作,启动单个容器。
如果是微服务架构,一个工程下有 10 个甚至100 个以上微服务,且服务之间存在依赖关系。如何去管理编排这些容器呢?
Docker Compose 就是用来轻松高效的管理容器,定义运行多个容器。
官方介绍
定义、运行多个容器。
YAML file 配置文件。
single command。 命令有哪些?
Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application’s services. Then, with a single command, you create and start all the services from your configuration. To learn more about all the features of Compose, see the list of features.
所有的环境都可以使用 Compose
Compose works in all environments: production, staging, development, testing, as well as CI workflows. You can learn more about each case in Common Use Cases.
三步骤
Using Compose is basically a three-step process:
- Define your app’s environment with a
Dockerfile
so it can be reproduced anywhere.- Dockerfile 保证我们的项目可以在任何地方运行。
- Define the services that make up your app in
docker-compose.yml
so they can be run together in an isolated environment.- services 什么是服务
- docker-compose.yml 这个文件怎么写?
- Run
docker-compose up
and Compose starts and runs your entire app.- 启动项目
作用:批量容器编排。
个人理解
Compose 是Docker官方都的开源项目。需要安装。
Dockerfile 让程序在任何地方运行。一个web服务,包含redis、mysql、nginx... 多个容器。run
Compose
version: "3.9" # optional since v1.27.0
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
- logvolume01:/var/log
links:
- redis
redis:
image: redis
volumes:
logvolume01: {}
docker-compose up 100个服务
Compose:重要的概念。
1. 服务services,容器,应用。(web,mysql,redis...)
2. 项目project。一组关联的容器。博客,web、mysql。
安装
#安装 下载速度慢,推荐国内链接下载
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#国内链接快速安装
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#授权
sudo chmod +x /usr/local/bin/docker-compose
#查看安装版本
docker-compose --version
#错误
/usr/local/bin/docker-compose: Text file busy
fuser /usr/local/bin/docker-compose
/usr/local/bin/docker-compose: 50340
kill -9 50340
体验
官网地址:docs.docker.com/compose/get…
1、应用 app.py
2、Dockerfile 应用打包为镜像
3、Docker-compose.yaml 文件(定义整个服务,web,redis)完整的上线服务。
4、启动 compose 项目 (docker-compose up)
流程:
1、创建网络
2、执行 Docker-compose.yaml
3、启动服务。
yaml规则
docker-compose.yaml 核心
#3层
version: '' # 版本
services: # 服务
服务1: web
# 服务配置
images
build
network
...
服务2: redis
...
服务3: mysql
...
# 其他配置 网络、卷、全局规则
volumes:
networks:
configs:
开源项目实战
博客搭建(WordPress)
原来:下载程序、安装数据库、配置...
compose 应用。 => 一键启动!
-
创建一个项目文件夹,仅包含构建镜像的文件
mkdir my_wordpress cd my_wordpress
-
编写 docker-compose.yml 文件
vim docker-compose.yml
version: '3.3' services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: - db image: wordpress:latest ports: - "8000:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress volumes: db_data: {}
-
构建项目
docker-compose up -d Creating network "my_wordpress_default" with the default driver Pulling db (mysql:5.7)... 5.7: Pulling from library/mysql efd26ecc9548: Pull complete a3ed95caeb02: Pull complete ... Digest: sha256:34a0aca88e85f2efa5edff1cea77cf5d3147ad93545dbec99cfe705b03c520de Status: Downloaded newer image for mysql:5.7 Pulling wordpress (wordpress:latest)... latest: Pulling from library/wordpress efd26ecc9548: Already exists a3ed95caeb02: Pull complete 589a9d9a7c64: Pull complete ... Digest: sha256:ed28506ae44d5def89075fd5c01456610cd6c64006addfe5210b8c675881aff6 Status: Downloaded newer image for wordpress:latest Creating my_wordpress_db_1 Creating my_wordpress_wordpress_1
#外网访问需开放端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
至此项目搭建完成,可通过 http://localhost:8000 访问博客
1、下载项目(docker-compose.yml)
2、如果需要文件。Dockerfile
3、文件准备齐全(直接意见启动!)
后台启动
docker -d
docker-compose up -d
项目实战部署
1、编写微服务项目
2、编写项目下各个项目的dockerfile文件
leaf
# Docker image for springboot file run
# VERSION 0.0.1
# Author: guanyp
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER guanyp <guanyp@hiwitech.com>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为leaf.jar
ADD leaf.jar leaf.jar
# 端口暴露
EXPOSE 8081
# 运行jar包
RUN bash -c 'touch /leaf.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/leaf.jar"]
xxqa-user-center
# Docker image for springboot file run
# VERSION 0.0.1
# Author: guanyp
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER guanyp <guanyp@hiwitech.com>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名
ADD xxqa-usercenter-1.0-SNAPSHOT.jar xxqa-usercenter.jar
# 端口暴露
EXPOSE 10081
# 运行jar包
RUN bash -c 'touch /xxqa-usercenter.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/xxqa-usercenter.jar"]
3、编写项目的 docker-compose.yaml 编排项目
version: "3.9"
services:
xxqa-usercenter:
#容器名称
container_name: xxqa-usercenter
build:
#指定上下文目录,当前目录
context: .
#指定镜像构建文件
dockerfile: xxqa-usercenter-dockerfile
#端口映射 容器:主机
ports:
- "10081:10081"
leaf:
container_name: leaf
build:
context: .
dockerfile: leaf-dockerfile
ports:
- "8080:8080"
4、上传 leaf 和 xxqa-user-center 的 jar 包到项目目录下,以及项目下各个服务的 dockerfile 文件和 编写的 docker-compose.yml 文件。
5、在当前目录执行docker-compose命令启动项目。
docker-compose up --build -d # -d 后台启动 --build 重新构建镜像运行,更新了jar包需要重新构建镜像,自动查找当前目录下docker-compose.yml 文件
6、上述每个服务只启动了一个节点,如何启动集群?
#通过--scale参数指定项目下各个服务的集群数量
# 注意的是这里的 leaf=3 是对应 docker-compose.yml 内容中的services: 下的名字,如果启动三个 leaf 则 leaf=3
#leaf启动启动4个,xxqa-usercenter服务启动四个,服务都是在当前机器启动
docker-compose up --build -d --scale leaf=4 --scale xxqa-usercenter=4
Docker Swarm
官方文档:docs.docker.com/engine/swar…
作用:快速搭建集群,会自动将启动的服务平均分配到集群下的机器
例如:上面的实战部署,仅仅在一台机器启动了 4 个 leaf 服务,和 4 个 xxqa-usercenter 服务,假如我们有四台机器,通过 Docker Swarm 搭建了一个机器集群,则启动的 4 个服务会被平均分配到 4 台机器中,无需在每台机器单独启动。
准备四台服务器
1c2g
4台机器安装Docker
和我们单机安装一样
技巧:xshell 直接同步操作,省时间! (右键,发送键到所有会话)
工作模式
Docker Engine 1.12 introduces swarm mode that enables you to create a cluster of one or more Docker Engines called a swarm. A swarm consists of one or more nodes: physical or virtual machines running Docker Engine 1.12 or later in swarm mode.
There are two types of nodes: managers and workers.
If you haven’t already, read through the swarm mode overview and key concepts.
机器集群搭建
目标:三主一从
四台集群机器:docker1,docker2,docker3,docker4
manager:docker1,docker2,docker3
worker:docker4
运行以下命令以创建新的群集:
#初始化Swarm集群,成为管理节点
$ docker swarm init
Swarm initialized: current node (wyiufkynoiteaz7si670h78aj) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-2zmqyb9705m653t0dlw5j3h3ms7nr24strv8ast4nnfk4jpm02-3afwkibhunla9oci1bkoa5nje 172.22.19.48:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
#根据提示将机器加入Swarm集群
docker-compose.yaml 官方文档:docs.docker.com/compose/pro…
集群部署
$ docker build
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
xxqa_xxqa-usercenter latest fd4eccf3f55d 19 minutes ago 798MB
xxqa_leaf latest 59f282727e8e 59 minutes ago 721MB
$ docker service create --replicas 4 --name xxqa-usercenter fd4eccf3f55d
Raft协议
Raft协议:保证大多数节点存活才可以用,只要>1,集群机器至少3台
实验:
1、双主双从下,一个主节点停止,宕机!另外一个主节点也不能用了;
2、节点离开集群
docker swarm leave
3、三主一从,一个主节点停止,仍然可用。
Docker Swarm 发布服务
-
xshell打开 docker1。
-
运行以下命令:
#启动服务 $ docker service create --replicas 1 --name helloworld alpine ping docker.com 9uk4639qpg7npwf3fn2aasksr
- 该
docker service create
命令创建服务。 - 该
--name
标志为服务命名helloworld
。 - 该
--replicas
标志指定1个运行实例的所需状态。 - 参数
alpine ping docker.com
将服务定义为执行命令的Alpine Linux容器ping docker.com
。
- 该
-
运行
docker service ls
以查看正在运行的服务列表:$ docker service ls ID NAME SCALE IMAGE COMMAND 9uk4639qpg7n helloworld 1/1 alpine ping docker.com
-
运行
docker service inspect --pretty <SERVICE-ID>
以易于阅读的格式显示有关服务的详细信息。$ docker service inspect --pretty helloworld ID: 9uk4639qpg7npwf3fn2aasksr Name: helloworld Service Mode: REPLICATED Replicas: 1 Placement: UpdateConfig: Parallelism: 1 ContainerSpec: Image: alpine Args: ping docker.com Resources: Endpoint Mode: vip
扩展服务群
当用 docker service 发布了一个服务后,可以通过 docker service scale 命令扩展服务容器的数量。在服务中运行的容器称为“任务”。
-
xshell 打开 docker1 。
-
运行以下命令来更改群集中运行的服务的所需状态:
$ docker service scale <SERVICE-ID>=<NUMBER-OF-TASKS>
例如:
# 扩展 helloworld 的服务集群为5 $ docker service scale helloworld=5 helloworld scaled to 5
-
运行
docker service ps <SERVICE-ID>
以查看更新的任务列表:$ docker service ps helloworld NAME IMAGE NODE DESIRED STATE CURRENT STATE helloworld.1.8p1vev3fq5zm0mi8g0as41w35 alpine worker2 Running Running 7 minutes helloworld.2.c7a7tcdq5s0uk3qr88mf8xco6 alpine worker1 Running Running 24 seconds helloworld.3.6crl09vdcalvtfehfh69ogfb1 alpine worker1 Running Running 24 seconds helloworld.4.auky6trawmdlcne8ad8phb0f1 alpine manager1 Running Running 24 seconds helloworld.5.ba19kca06l18zujfwxyc5lkyn alpine worker2 Running Running 24 seconds
您可以看到swarm创建了4个新任务,以扩展到总共5个Alpine Linux运行实例。任务分布在群集的三个节点之间。一个正在运行
manager1
。 -
运行
docker ps
以查看在您连接的节点上运行的容器。以下示例显示了在上运行的任务manager1
:$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 528d68040f95 alpine:latest "ping docker.com" About a minute ago Up About a minute helloworld.4.auky6trawmdlcne8ad8phb0f1
如果要查看在其他节点上运行的容器,请使用ssh进入这些节点并运行
docker ps
命令。
nacos集群安装
-
Clone project
git clone --depth 1 https://github.com/nacos-group/nacos-docker.git cd nacos-docker #配置启动jvm内存大小 vim nacos-docker-master/env/nacos-hostname.env #jvm JVM_XMS=256m JVM_XMX=256m JVM_XMN=256m
-
Cluster
docker-compose -f nacos-docker-master/example/cluster-hostname.yaml up -d