zoukankan      html  css  js  c++  java
  • docker 命令及简单部署

    docker top  #查看进程数

    docker attach  进入容器,exit会退出容器,ctrl+pq 不会导致容器退出,会把容器放在后台运行 (exit只是停止运行,可以重新起来,如果启容器时候,只是运行临时命令,容器不能起来)

    docker exec 不会使容器退出,ps 不能显示上帝进程 1(只会退出当前bash)

    docker images  #查看当前镜像

    docker ps  #查看当前运行的容器

    docker load < xx.tar   #导入镜像

    docker save image_name > xx.tar  #导出镜像

    docker run -it centos bash  #it是可交互的tty(终端)

    docker history   image_name  #可以docker层数

    docker rmi  #删除镜像  如果有以此来运行的需要先stop 再 rm掉,方可以删除镜像

    docker tag  #可以镜像定义标签

    注意,如果docker run - it nginx  没有tty端,用 /bash/bin可以看到 是用ubantu做的

    nginx容器的网页根目录是/usr/share/nginx/html

    docker commit  IDs name:label  # IDs是容器的编号,后面是标签 这个可以提交新镜像,放入底层,但commit做出来的可能是黑箱镜像,层数很多,可以由此查看制作的思路,不建议用commit做

    dockerfile 用作自动镜像编排 类似应答文件

    Dockerfile语法格式:

    – FROM:基础镜像

    – MAINTAINER:镜像创建者信息(说明)  ##说明活是谁干的

    – EXPOSE:开放的端口  ##只是声明端口

    – ENV:设置环境变量    ##查看 服务的配置文件 如http  cat  /usr/lib/systemd/system/httpd.service

    – ADD:复制文件到镜像   ##add 必须是当前目录,相对路径,不可以写绝对路径,提交的是context的东西,会报错,制作Dockerfile时候,新建一个文件夹来写Dokcerfile。 

    – RUN:制作镜像时执行的命令,可以有多个    ###shell命令,多个RUN命令可以用 && (前面正确执行下面一条)来写,写成一条,避免层数过来,显得很臃肿

    – WORKDIR:定义容器默认工作目录        ##相当于cd

    – CMD:容器启动时执行的命令,仅可以有一条CMD   ##用此镜像来启动容器时候,容器会首先执行此命令 启动命令在 cat  /usr/lib/systemd/system/httpd.service 查看

    本案例要求创建私有的镜像仓库:

    • Docker主机:192.168.1.20
    • 镜像仓库服务器:192.168.1.10

    实现此案例需要按照如下步骤进行。

    步骤一:自定义私有仓库

    1)定义一个私有仓库

     
    [root@docker1 oo]# vim /etc/docker/daemon.json    //不写这个文件会报错
    {
    "insecure-registries" : ["192.168.1.10:5000"]    //使用私有仓库运行容器
    }
    [root@docker1 oo]# systemctl restart docker
    [root@docker1 oo]# docker run -d -p 5000:5000 registry   //启动registry容器
    273be3d1f3280b392cf382f4b74fea53aed58968122eff69fd016f638505ee0e
    [root@docker1 oo]# curl 192.168.1.10:5000/v2/
    {}    //出现括号
    [root@docker1 oo]# docker tag busybox:latest 192.168.1.10:5000/busybox:latest
    //打标签
    [root@docker1 oo]# docker push 192.168.1.10:5000/busybox:latest //上传
    [root@docker1 oo]# docker tag myos:http 192.168.1.10:5000/myos:http
    [root@docker1 oo]# docker push 192.168.1.10:5000/myos:http

    在docker2上面启动

    [root@docker2 ~]# scp 192.168.1.10:/etc/docker/daemon.json  /etc/docker/
    [root@docker2 ~]# systemctl restart docker
    [root@docker2 ~]# docker images
    [root@docker2 ~]# docker run -it 192.168.1.10:5000/myos:http /bin/bash    
    //直接启动

    步骤二:查看私有仓库

    1)查看里面有什么镜像

    [root@docker1 oo]# curl  http://192.168.1.10:5000/v2/_catalog
    {"repositories":["busybox","myos"]}

    2)查看里面的镜像标签

    2)查看里面的镜像标签
    [root@docker1 oo]# curl  http://192.168.1.10:5000/v2/busybox/tags/list 
    {"name":"busybox","tags":["latest"]}
    [root@docker1 oo]# curl  http://192.168.1.10:5000/v2/myos/tags/list 
    {"name":"myos","tags":["http"]}

    docker run -d -p 80:80 -v /mnt/qq:/var/www/html -it myos:http    ##-v是容器卷的概念 把真机目录映射到 容器里面,在容器里面删除的东西,真机的东西也会没有,是实时同步,但是容器的消亡,映射文件不会消亡,也可以用nfs做映射文件,容器中不存数据,为了容器的轻量级,因为容器排错有挑战,所以一旦容器损坏,就不会去修复,会直接删除

    ##注意,当一个容器,因为重启,或其他原因停止时,不要急着重新启动一个容器,可以试着先启动这个容器东西不会丢

    ##制作容器时候,可以以一个基础容器为模版,然后做成自己公司所需要的环境,再封装成一个容器,用Dockerfile做,尽量减少层数。

    自定义网桥 略。。。。

    基础命令参考

    https://www.cnblogs.com/Csir/p/6888474.html     #docker命令

    http://www.runoob.com/docker/docker-run-command.html   #docker参数

  • 相关阅读:
    linux卸载mysql,apache,php
    iOS 秒数转换成时间,时,分,秒
    iOS 正则表达式判断邮箱、身份证..是否正确
    ios 删除系统从相册压缩的视频
    iOS 视频选择压缩
    iOS 从相册中拿到 图片名 ,截取后缀,图片名
    ios 根据颜色生成图片,十六进制颜色。
    ios 友盟第三方登录遇到的各种坑。
    项目适配iOS9遇到的一些问题及解决办法 ,以及URL 白名单配置方法
    ios 设置head请求头,自定义head, read response header
  • 原文地址:https://www.cnblogs.com/lsgo/p/10668550.html
Copyright © 2011-2022 走看看