docker小结1

1 通过dockerfile建立一个简单的HELLO.C,然后做一个简单的docker image
,这个是base image,共享宿主机的base image


  建立目录,比如helloworld目录下,建立Dockerfile文件,写入


FROM scratch
 ADD hello /
CMD ["/hello"]  //CMD运行后是会马上退出的


 >docker build -t liaoyurong/hello-world  .
 运行docker run liaoyurong/hello-world  输出结果


2 IMAGE和容器container的关系,大概等于类和实例的关系


3 docer container ls -a //列出当前运行和已退出的container


4 docker run -it centos  //直接会进centosde container,
   exit //退出


5 docker container rm containerid(可以不写全)
6 docker ps -a 
  docker ls -aq //列出所有containerid
   docker rm  $(docker container ls -aq)  //全部清理



比如在container中做了修改后,EXIT退出DOCKER,


 docer container ls -a


找出最新的names(是个随机字母)
docker  commit   names  xxxx/xxxx   //容器中再修改后再提交成IMAGE


8 通过dockerfile往CENTOS中安装VIM
  FROM centos
  RUN yum-install vim
   
然后docker build -t liao/xxxx .
    
9 dockerfile语法
   FROM scratch  // 制作baseimage
   FROM  centos   
 LABEL version="1.0"  //定义相关元数据
 RUN yum update &&yum install -y .....


  WORKDIR /root  设定当前工作目录
ADD hello  /   //复制到根目录
ADD  test.tar.gz  /  添加到根目录并解压


 WORKDIR /root
 ADD hello test/         hello的位置在#/root/test/hello


ENV MYSQL_VER  5.6  //设定的常量




10 RUN:执行命令并创建新的IMAGE LAYER
  CMD:设置容易启动后默认执行的命令和参数,如果
docker run指定了其他命令,则CMD命令被忽略,
如果定义了多个CMD,则最后一个才给执行
  ENTRYPOINT:设置容器启动时运行的命令


11 SHELL格式
     RUN  apt-get install -y vim
    CMD  echo "hello"
    ENTRYPOINT echo "hello"
   //shell格式执行的话,能识别比如$name=abc这样的参数替换


  EXEC格式
   RUN ["apt-get","install",.....]   //通过逗号分隔
   ENV name docker
   ENTRYPOINT["/bin/bash","-c","echo hello $name"]


12 ENTRYPOINT  //一般让容易以应用程序用服务形式执行,一定会执行;
13 docker push xxx/xxxx ;   //发布
    docker pull  xxx/xxxx    //推送
  分享dockerfile:
    可以关联github上的库,dockerhub服务器从GITHUB上BUILD,等于DOCKERHUB帮你BUILD了,
其他人更信服

猜你喜欢

转载自blog.csdn.net/jackyrongvip/article/details/80154548