美文网首页docker
docker 再认识

docker 再认识

作者: 宇晨棒棒的 | 来源:发表于2019-11-03 09:32 被阅读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的分层

相关文章

  • 认识docker

    什么是docker Docker是2013年开始火起来的一门技术,号称是革命性的技术,它主要解决的是软件环境配置的...

  • Docker-基础使用

    零、本文纲要 一、认识Docker 二、Docker架构 三、安装Docker 四、启用Docker 五、Dock...

  • docker| 删除镜像报错

    执行docker rmi $(docker images -aq)时出现: 当我再执行docker images时...

  • Error response from daemon: driv

    重启docker服务后再启动容器 systemctl restart docker docker start xx

  • 三、Docker版本升级

    Docker 版本升级,需要先卸载旧版本的Docker,再安装新版的Docker。本文要升级的Docker目标版本...

  • 再 认识

    怎么说呢? 很复杂的心情…… 想不通的事情太多太多……其实抱着终身成长学习心态,每天一点点进步 真正的养成习惯就好...

  • docker harbor

    下载 harbor harbor 中已经含有了 docker registry ,因此,无需再安装 docker ...

  • Docker初步认识

    一、Docker简介 1、Docker是什么? “Docker 是一个基于Go语言实现的开源应用容器引擎,让开发者...

  • 初步认识Docker

    作者:李文君 评阅人:鹿凯翔、黄春超 1. Docker简介 这里引用Maureen O'Gara给Dock...

  • 认识Docker(1)

    1.1 什么是Docker? Docker开源项目 Docker是基于Go语言实现的云开源项目,诞生于2013年。...

网友评论

    本文标题:docker 再认识

    本文链接:https://www.haomeiwen.com/subject/ivhqbctx.html