docker命令

CentOS7中使用docker-compose部署服务

半腔热情 提交于 2020-03-17 01:15:40
某厂面试归来,发现自己落伍了!>>> 之前讲解过Docker安装单个服务的系列教程,没看过的可以点击下面的链接回顾一下: Docker学习笔记一:Docker简介与安装 MacOS安装Docker傻瓜式教程 mac系统下docker安装配置mysql详细步骤 mac系统Docker安装Redis教程 mac系统Docker安装Nginx教程 Docker的用途我在这里就不做赘述了,不懂的自己戳上面的链接学习,假如现在我们有个Springboot应用,里面用到了mysql、Redis、Nginx等服务,那现在我们要用Docker部署我们的服务,通常需要下面几步: 安装docker 使用docker安装Redis 使用docker安装Mysql 使用docker安装、配置Nginx springboot应用打成Jar包和编写dockerfile 安装好以上服务之后,我们还要一一启动,然后再运行项目才能访问,虽然说docker有一次打包到处运行、节省存储空间和资源,应用隔离和服务器整合等优点,但是仔细看上面的部署步骤,即便我们用了docker,也还是要在docker里手动安装其他服务,现在只有redis、mysql、nginx几个服务,如果我们以后还要加ES、Mongo等等越来越多的服务,好像并没有提高很多效率,那作为“万能”的程序员,有解决方法吗?那必须有啊,下面就进入本文的重点

CentOS7中使用docker-compose部署服务

我的未来我决定 提交于 2020-03-17 01:14:39
某厂面试归来,发现自己落伍了!>>> 之前讲解过Docker安装单个服务的系列教程,没看过的可以点击下面的链接回顾一下: Docker学习笔记一:Docker简介与安装 MacOS安装Docker傻瓜式教程 mac系统下docker安装配置mysql详细步骤 mac系统Docker安装Redis教程 mac系统Docker安装Nginx教程 Docker的用途我在这里就不做赘述了,不懂的自己戳上面的链接学习,假如现在我们有个Springboot应用,里面用到了mysql、Redis、Nginx等服务,那现在我们要用Docker部署我们的服务,通常需要下面几步: 安装docker 使用docker安装Redis 使用docker安装Mysql 使用docker安装、配置Nginx springboot应用打成Jar包和编写dockerfile 安装好以上服务之后,我们还要一一启动,然后再运行项目才能访问,虽然说docker有一次打包到处运行、节省存储空间和资源,应用隔离和服务器整合等优点,但是仔细看上面的部署步骤,即便我们用了docker,也还是要在docker里手动安装其他服务,现在只有redis、mysql、nginx几个服务,如果我们以后还要加ES、Mongo等等越来越多的服务,好像并没有提高很多效率,那作为“万能”的程序员,有解决方法吗?那必须有啊,下面就进入本文的重点

Docker:为容器设定数据卷的两种方式

时光总嘲笑我的痴心妄想 提交于 2020-03-17 01:10:50
1. 命令行方式: 以安装mysql为例: 在宿主机建立与MySQL容器挂载的文件目录(如/mysql),在该目录下至少包含下面三个目录: data logs conf 进入mysql目录下,执行下面容器运行命令,绑定容器卷。 运行mysql: docker run -p 3306:3306 --name mysql -v $PWD /conf:/etc/mysql/conf.d -v $PWD /logs:/logs -v $PWD /data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD = 123456 -d mysql:5.7 2. DockerFile方式: 以挂载Tomcat的webapps目录为例: FROM tomcat:9.1 VOLUME [ "/usr/local/tomcat/webapps" ] 可以看出以DockerFile中VOLUME命令指定容器中数据卷对应位置,并没有提供能够指定在宿主机中文件的位置,其原因是,不同的宿主机下,无法确定一个目录的存在。 上面没有指定数据卷在宿主机中位置,如何查看: 使用 docker inspect 容器id 查看容器详情: 注意: (1)默认拉取的tomcat:9.0 他的webapps下的内容在webapps.dist文件夹下; (2)当配置数据卷编写DockerFile时

部署clickhouse cluster(基于docker+zookeeper)

你离开我真会死。 提交于 2020-03-17 01:04:44
#安装zookeeper 虽然不是必要的,但clickhouse官方建议使用zookeeper部署集群,原因是ck的复制是用zk实现的: ZooKeeper is not a strict requirement: in some simple cases you can duplicate the data by writing it into all the replicas from your application code. This approach is not recommended, in this case ClickHouse won’t be able to guarantee data consistency on all replicas. This remains the responsibility of your application. 而且很重要的是,如果不安装zookeeper,那么副本表是无法实现的 1.准备三台机器(/etc/hosts): 192.168.11.100 ch100 192.168.11.101 ch101 192.168.11.102 ch102 2. 下载zookeeper3.5.6 注意一定要下载带有bin的版本,否则会 【报错】 Starting Zookeeper Cluster. Error: Could

docker默认存储空间用完情况下,做迁移数据

大城市里の小女人 提交于 2020-03-17 00:41:50
由于docker默认存放数据路径为/var/lib/docker,但运行了一段时间后,发现/var/lib/docker下的目录文件过大,导致此分区空间不够用。通过以下方法,解决该问题。 如何避免: 最好是在docker安装完后,第一时间修改docker默认存储位置为其他大目录或者磁盘中。规避迁移数据过程中造成的风险。 方式一:修改默认存储路径 直接移出数据,并修改docker默认存放路径位置 1 、移出数据 systemctl stop docker mkdir -p /data1/docker/ #创建新的docker目录,执行命令df -h,找一个大的磁盘 rsync -avz /var/lib/docker/ /data1/docker/ #迁移到新路径下 2 、修改配置默认路径 #添加--graph=/data1/docker/ [root@cdh03 ~]# vim /usr/lib/systemd/system/docker.service ExecStart=/usr/bin/dockerd-current --graph=/data1/docker/\ --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \ [root@cdh03 ~]# systemctl daemon-reload

Docker容器中的OpenJ9类共享

北战南征 提交于 2020-03-16 17:52:19
通过优锐课核心java学习笔记中,我们可以看到,码了很多专业的相关知识, 分享给大家参考学习。 在容器化环境中启用类共享 OpenJ9最初设计为可在2000年代早期的移动设备上运行,它是一种用于云的Java虚拟机,它使用的内存大约是JDK8 Hotspot的一半,而吞吐量却几乎与其相当。这种性能提升直截了当;但是,还有更多的调整可以做。在本文中,了解在容器化环境中运行时如何启用OpenJ9的类共享功能。 如果你不熟悉OpenJ9中的类共享功能,那么教程“ Eclipse OpenJ9中的类共享”(IBM Developer,2018年6月)深入探讨了类共享的工作原理以及为什么要使用它。简短的版本是类共享允许OpenJ9 JVM在Java代码上编译和执行优化,并将该信息缓存在一个公共位置,以供其他OpenJ9 JVM使用。类共享提供了显着的好处,包括提高了启动速度并减少了CPU和内存使用量。 在容器化环境之外,使用OpenJ9的类共享功能就像将JVM arg -Xshareclasss添加到启动脚本中并让OpenJ9的默认值处理其余部分一样简单。但是,在容器化环境中(如在云中运行Java应用程序时经常发生的情况),需要做更多的工作。让我们看一下在容器化环境中设置OpenJ9的类共享的两种方法,并权衡每种方法的优缺点。 方法1:使用Docker

docker 学习(六) export/import/load/save images

喜欢而已 提交于 2020-03-16 04:05:54
export/import 是一对命令; load/save是一对命令 一: export / import使用 1: 查看镜像: docker ps -a 2:导出镜像:docker export “ container id" > xxxx.tar 3: 导入镜像: docker import - DDDD XXXX.tar 二: Load /save使用   1: docker images 注意(此处有大坑): 进行load的时候要用REPOSITORY名而不是后面的IMAGE ID, 这是因为managerforecast/roadmap是增量build的,两个要都load才行,   2: save命令   3;load 4; run命令 前一个8080表示docker对外暴露的端口; 9000表示image中程序暴露的端口 来源: https://www.cnblogs.com/liufei1983/p/8618208.html

Docker for Java Developers

南楼画角 提交于 2020-03-16 00:13:41
1. 基本概念 1.1. 主要组件 Docker有三个主要组件: 镜像是Docker的构建组件,而且是定义应用程序操作系统的只读模板 容器是Docker的运行组件,它是从镜像创建的。容器可以运行、启动、停止、移动和删除 镜像在注册中心中存储、共享和管理,并且是Docker的分发组件。Docker Store 是一个公开可用的注册中心。 https://hub.docker.com/ 为了上这三个组件协同工作,Docker守护进程(或者叫Docker容器)运行在一个主机上,并负责构建、运行和分发Docker容器。此外,客户端是一个Docker二进制文件,它接受来自用户的命令并与引擎来回通信。 1.2. Docker Image Docker镜像是一个可以从其中启动Docker容器的只读模板。每个镜像又一系列的层组成。 (PS:现在发现,把“Image”翻译成专业术语“镜像”的话这里就感觉跟别扭。原文是“Each image consists of a series of layers”,如果按“Image”本来的意思“图像”去理解就很好理解了,对PhotoShop有点儿了解的人都能理解这句话,“图像由一系列图层组成”,真是太形象了。) Docker如此轻量级的原因之一就是这些层(图层)。当你修改镜像(例如,将应用程序更新到新版本)时,将构建一个新的层。因此,只添加或更新该层

Docker私有仓库Harbor使用操作

只愿长相守 提交于 2020-03-15 15:28:38
Harbor页面基础操作 1):网页登陆http://192.168.100.61/ 默认账户密码:admin Harbor12345 [root@localhost ~]# cat /data/harbor/harbor.cfg | grep harbor_admin_password 2):用户管理 系统管理--用户管理--创建用户 3):新建一个项目 4):上传下载镜像到Harbor仓库 [root@localhost ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 127.0.0.1 docker2 [root@localhost ~]# cat /etc/docker/daemon.json { "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"], "insecure-registries": ["192.168.100.61:5000"], "insecure-registries": ["docker2:80"] }