docker总结

1, 内存与cup限制

详情:https://www.cnblogs.com/zhuochong/p/9728383.html

1.1:docker 运行指定内存

选项描述
-m,–memory内存限制,格式是数字加单位,单位可以为 b,k,m,g。最小为 4M
–memory-swap内存+交换分区大小总限制。格式同上。必须必-m设置的大
–memory-reservation内存的软性限制。格式同上
–oom-kill-disable是否阻止 OOM killer 杀死容器,默认没设置
–oom-score-adj容器被 OOM killer 杀死的优先级,范围是[-1000, 1000],默认为 0
–memory-swappiness用于设置容器的虚拟内存控制行为。值为 0~100 之间的整数
–kernel-memory核心内存限制。格式同上,最小为 4M

1.2:CPU限制

选项描述
–cpuset-cpus=""允许使用的 CPU 集,值可以为 0-3,0,1
-c,–cpu-shares=0CPU 共享权值(相对权重)
cpu-period=0限制 CPU CFS 的周期,范围从 100ms~1s,即[1000, 1000000]
–cpu-quota=0限制 CPU CFS 配额,必须不小于1ms,即 >= 1000
–cpuset-mems=""允许在上执行的内存节点(MEMs),只对 NUMA 系统有效

2:开启docker远程访问

为了镜像直接打包放入docker,需关闭防火墙或放开docke端口
放开端口命令为:firewall-cmd --zone=public --add-port=2375/tcp --permanent
firewall-cmd --reload

2.1:修改文件

打开/usr/lib/systemd/system/docker.service文件,修改ExecStart这行。
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

2.2:重启生效

systemctl daemon-reload
systemctl restart docker.service

2.3:测试是否生效

curl http://127.0.0.1:2375/info

3:maven中集成docker

3.1:添加Dockerfile文件(该文件没有后缀)

在这里插入图片描述

3.2:Dockerfile文件

示例:
在这里插入图片描述

3.2.1:FROM livingobjects/jre8

指Docker Hub上官方提供的java镜像,有了这个基础镜像后,Dockerfile可以通过FROM指令直接获取它的状态——也就是在容器中java是已经安装的,接下来通过自定义的命令来运行Spring Boot应用,docker的一大方便也在于此,只要在from中配置需要的基础应用,它就会默认给你已安装上。

3.2.2:VOLUME /tmp

创建/tmp目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录。

3.2.3:ADD iacs-alarm-0.0.1-SNAPSHOT.jar app.jar

将应用jar包复制到/app.jar

3.2.4:ENTRYPOINT

表示容器运行后默认执行的命令

3.3:pom.xml文件修改

3.3.1:需打成jar包

在这里插入图片描述

3.3.2:标签内容

示例:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>0.4.14</version>
            <configuration>
                <imageName>${project.artifactId}</imageName>
                <dockerDirectory>src/main/docker</dockerDirectory>
                <dockerHost>http://192.168.3.227:2375</dockerHost>
                <resources>
                    <resource>
                        <targetPath>/</targetPath>
                        <directory>${project.build.directory}</directory>
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
            </configuration>
        </plugin>
    </plugins>
</build>
3.3.2.1:

镜像名称

3.3.2.2:< dockerHost >

指定 Docker Remote API 的远程访问地址

3.4:单个发布镜像

docker:build
在这里插入图片描述

4:Compose

Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器,使用Docker Compose不再需要使用shell脚本来启动容器。

Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。

docker-compose默认的模板文件是 docker-compose.yml,其中定义的每个服务都必须通过 image 指令指定镜像或 build 指令(需要 Dockerfile)来自动构建。

其它大部分指令都跟 docker run 中的类似。

如果使用 build 指令,在 Dockerfile 中设置的选项(例如:CMD, EXPOSE, VOLUME, ENV 等) 将会自动被获取,无需在 docker-compose.yml 中再次设置。

4.1:linux安装compose

有两种方式

4.1.1:从github上下载docker-compose二进制文件安装

4.1.1.1:下载最新版的docker-compose文件

sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-uname -s-uname -m -o /usr/local/bin/docker-compose

4.1.1.2:添加可执行权限

sudo chmod +x /usr/local/bin/docker-compose

4.1.2:pip安装

4.1.2.1:安装python-pip

yum -y install epel-release
yum -y install python-pip

4.1.2.2:安装docker-compose

pip install docker-compose

4.1.3:测试安装结果

docker-compose –version

4.2: Compose 基本上分为三步

4.2.1:Dockerfile 定义应用的运行环境

同3.2配置

4.2.2:docker-compose.yml 定义组成应用的各服务

一份标准配置文件应该包含 version、services、networks 三大部分,其中最关键的就是 services 和 networks 两个部分
示例:
在这里插入图片描述

选项描述
versionCompose目前为止有三个版本分别为Version 1,Version 2,Version 3,Compose区分Version 1和Version 2(Compose 1.6.0+,Docker Engine 1.10.0+)。Version 2支持更多的指令。Version 1没有声明版本默认是"version 1"。Version 1将来会被弃用。
services多个容器集合
build配置构建时,Compose 会利用它自动构建镜像,该值可以是一个路径,也可以是一个对象,用于指定 Dockerfile 参数
image指定服务所使用的镜像
ports对外暴露的端口定义,和 expose 对应
links将指定容器连接到当前连接,可以设置别名,避免ip方式导致的容器重启动态改变的无法连接情况
entrypoint用于指定接入点。在docker-compose.yml中可以定义接入点,覆盖Dockerfile中的定义
command覆盖容器启动后默认执行的命令
environment环境变量配置,可以用数组或字典两种方式
volumes卷挂载路径

4.2.3:docker-compose up 启动整个应用

将yml文件放到服务器上,在该目录执行
docker-compose up –d
(启动容器,如果镜像不存在则先下载镜像,如果容器没创建则创建容器,如果容器没启动则启动)

4.2.4:其他

docker-compose down
停止并移除容器
docker-compose restart
重启服务

5:安装docker

1:查看内核

Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本
uname -r

2:更新yum

sudo yum update

3:卸载旧版本(如果安装过旧版本的话)

sudo yum remove docker docker-common docker-selinux docker-engine

4:安装软件包

yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

5:设置yum源

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

6:选择版本

可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r

7:安装docker

sudo yum install docker-ce 或者sudo yum install # 例如:sudo yum install docker-ce-17.12.0.ce

8:查看版本(验证是否安装成功)

docker version

9:启动并加入开机启动

sudo systemctl start docker

sudo systemctl enable docker

6:docker操作

6.1:查看日志

6.1.1:直接查看容器运行日志

docker logs -f -t --tail 行数 容器名

如: docker logs -f -t --tail 200 124f093ed1d2

6.1.2:可将容器目录挂载到服务器上

6.2:进入docker容器目录

docker exec -it 容器ID /bin/bash

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值