docker

docker 再认识

2019-11-03  本文已影响0人  宇晨棒棒的

1.RUN && CMD && ENTRYPOINT 区别:

RUN :执行命令并且创建新的image layer

CMD:设置容器启动后默认执行的命令和参数

ENTRYPOINT:设置容器启动时运行的命令

2.shell和exec格式

shell格式:

RUN yum install -y vim

CMD echo 'hello world'

ENTRYPOINT echo 'hello world'

exec格式:

RUN ["yum","install","-y","vim"]

CMD ["/bin/echo","hello world"]

ENTRYPOINT ["/bin/echo","hello world"]

3.解析ENTRYPOINT的shell和exec格式命令执行显示的区别:

FROM centos

ENV Name Docker

#shell格式命令,会显示hello Docker

ENTRYPOINT echo  "hello $Name"       

#exec格式,显示为空!因为没有bash环境去执行echo命令         

ENTRYPOINT ["/bin/echo", "hello $Name"]   

#虽然给了bash环境,但是命令需要写在一起,执行为空

ENTRYPOINT ["/bin/bash", "-c", "echo", "hello $Name"]

#exec格式,显示为hello Docker

ENTRYPOINT["/bin/bash", "-c", "echo hello $Name"]

4.将自制的镜像push到docker-hub上:

首先需要到docker-hub上面设置账号密码

将自己的镜像名改为github账号名/name的形式

docker login  输入账号密码

docker push github账号名/name

登录到dockerhub中查看镜像

5.私有仓库的创建:

仓库端设置:

1)docker run -d -p 5000:5000  --restart always --name registry registry:2

2)查看registry是否已经启动,保证5000端口打开

默认镜像文件存放在:/var/lib/registry/docker/registry/v2/repositories

docker-镜像端设置:

添加配置文件:/etc/docker/daemon.json  ---->

      { "insecure-registries":["仓库ip地址:5000"] }

修改docker启动文件:/lib/systemd/system/docker.service

      15行添加 EnvironmentFile=-/etc/docker/daemon.json

重现启动docker  ----> service docker restart

将本地的Image改名:

        docker  tag    image:tag    仓库ip:5000/名称

上传到仓库: docker push  仓库ip:5000/名称

查看上传结果: http://仓库ip:5000/v2/_catalog

6.使用dockerfile创建一个命令行带参数执行的镜像:

FROM ubuntu

RUN apt-get update && apt-get install -y stress

ENTRYPOINT ["/usr/bin/stress"]

CMD []

docker build -t 镜像名  .

docker run -it 镜像名  --vm 1  --verbose

7.针对容器资源限制

docker run --help  查看帮助

内存(如果只设定内存没设置swap,swap空间会和内存一样大小):

docker run --memory=200M  镜像名称 

内存总和大小是memory+swap=400M

cpu:相对权重

docker run --cpu-share=10  --name test 镜像名称

docker run --cpu-share=5  --name test1 镜像名称

此时test和test1占cpu的权重比是2:1,一共是100%

8.docker 底层技术支持

Namespaces:做隔离pid,net、ipc、mnt、uts

Control groups:做资源限制

Union file system:Container和image的分层

上一篇 下一篇

猜你喜欢

热点阅读