Docker学习笔记7

一、Docker基本使用方法

  • Docker镜像相当于,将程序+依赖库打一个包。
  • docker容器就是一个物理进程

cpu core核心控制,docker run 命令中的参数。

–cpuset-cpus参数,指定容器运行时使用那些cpu内核。

–cpu-shares参数,限定容器运行时占用cpu的份额。

taskset命令

taskset设定cpu的亲和力,将一个或多个进程绑定到一个或多个处理器上运行。
参数:

  • -c,–cpu-list
  • -p,–pid

Linux压力测试工具stress

stress是Linux压力测试工具

二、docker容器参数

2.1 docker容器对宿主机cpu,内存使用设置

docker容器重命名

docker rename oldname newname

创建docker容器实例时指定主机名

docker run -it --name 容器名 -h 主机名 镜像名 /bin/bash

容器退出时,始终重启容器

–restart=always

docker run -itd --name 容器名 --restart=always 镜像名 /bin/bash

dockr容器实例运行结束后自动释放资源

参数:–rm

–rm Automatically remove the container when it exits

docker run -it --rm --name zh1 centos sleep 5
docker ps -a | grep zh1 #查看zh1容器时,已经被删除了

docker容器内存使用控制

  • -m, --memory bytes Memory limit
docker run -it -m 128m --name centos_test centos #没有写bash,默认是bash。
[root@94939cc06569 /]# exit #退出容器,就自动停止容器了。

创建一个docker容器,使用2个cpu核心,只能使用128M内存

docker run -it --name centos_zh --cpuset-cpus 0,1 -m 128 centos

2.2 docker数据映射

语法

docker run -itd -v /src:/dst centos bash
  • -v 用来指定挂载目录
  • 冒号前为宿主机内目录,冒号后为容器内目录

数据映射实例

[root@zhouhao ~]# docker run -it --name web11 -v /var/www/html:/var/www/html centos bash
[root@341237f05a17 /]# echo aaa > /var/www/html/html.index #在容器中将内容写入文本
[root@zhouhao /]# cat /var/www/html/html.index #去到宿主机上查看对应目录
aaa

2.3 docker容器资源配置之IO

IO控制

–device-read-bps list Limit read rate (bytes per second) from a device (default [])
–device-write-bps list Limit write rate (bytes per second) to a device (default [])
防止某个docker容器吃光磁盘IO资源

限制容器对磁盘的最高写入速度是1MB/s

docker run -it -v /var/www/html:/var/www/html --device /dev/sda:/dev/sda --device-write-bps /dev/sda:1mb centos /bin/bash

三、Dockerfile概述

3.1 4组核心的dockerfile指令

  • USER/WORKDIR指令
  • ADD/EXPOSE指令
  • RUN/ENV指令
  • CMD/ENTRYPOINT指令
    whoami指令用于显示用户自身名称。

关于EXPOSE指令

在Dockerfile文件中指定EXPOSE 80,在启动镜像时要配合 -P
使用。例如:

docker run -it -P --name centos_test centos /bin/bash

在宿主机会随机映射一个端口号,到容器的80端口。

RUN指令

在构建镜像时运行的指令

CMD指令

在启动容器时运行的指令。若没有指定CMD指令,默认去到容器中的/entrypoint.sh脚本执行该脚本命令,entrypoint.sh脚本要具有可执行权限。

ENTRYPOINT指令

容器启动时,会运行该指令。若没有指定ENTRYPOINT指令,/entrypoint.sh脚本也不存在,默认执行/bin/bash。

3.2 运行docker容器,在浏览器打开能访问百度页面

dockerfile文件内容

FROM nginx
USER root
ENV WWW /usr/share/nginx/html
ENV CONF /etc/nginx/conf.d
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
	echo 'Asia/Shanghai' > /etc/timezone
WORKDIR $WWW
ADD index.html $WWW/index.html
ADD demo.od.com.conf $CONF/demo.od.com.conf
EXPOSE 80
CMD ["nginx","-g","daemon off;"]

index.html文件来源

wget www.baidu.com -O index.html

demo.od.com.conf文件内容

server{
	listen 80;
	server_name demo.od.com;
	root /usr/share/nginx/html;
}

构建docker镜像命令

docker build -t nginx:baidu -f Dockerfile .

启动docker容器命令

docker run -it -p 80:80 nginx:baidu

访问效果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值