zoukankan      html  css  js  c++  java
  • docker随笔1

    1.docker常用命令集合:

    执行docker的时候建议使用root用户进行操作,ubuntu/deepin 如果没有设置root的密码,可以执行以下命令

    sudo  passwd

    设置root密码

    切换root 用户: 使用su命令

    docker pull name       #拉取镜像
    docker images #获取镜像的列表
    docker inspect imageid #以package.json的形式显示镜像的详细信息。
    docker search keyword #根据关键词搜索相应的镜像。
    docker rmi image/id #删除镜像

    2.创建镜像

    创建镜像有三种方式,

      基于已有镜像容器创建,

      基于本地模版创建,

      基于dockerfile创建

    2-1 基于已有镜像创建容器:

      容器是不会保存用户的修改的,如果想持久化就需要docker commit,创建一个新的容器。

      基于已有镜像进行创建容器,就是commit的过程。

      

    docker commit -m "commit message" -a "author"  imageid

    实例:

    docker images  #查看已有镜像
    docker search ubuntu #搜搜ubutnu镜像
    docker pull rmrbest/ubuntu16-phalcon-php7  #拉取镜像,这个是我搜到的排行靠前的镜像 
    docker run -ti rmrbest/ubuntu16-phalcon-php7  /bin/bash  #进入容器

    进入容器以后创建一个php文件

    echo "<?php echo "Hello,world"" >> hello.php

    退出容器 : exit

    创建新的镜像:

    docker commit 678023e1884f(进入的原来的镜像的id)  mytest(新镜像的名字)

    基于已有镜像创建新的镜像完成。

    因为下的这个镜像有些大,所以我要删除镜像

    docker rmi mytest

    发现报错,因为我的容器应用正在后台运行,所以需要先删除该镜像下的所有容器

    docker ps -a #查看所有docker进程
    dcoker rm container_id #删除容器

    如果嫌麻烦也可以直接强制删除,不推荐

    docker rmi  -f image_id

    ==========================================================================================

     2-2基于本地模版创建

    docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

    使用import对本地的文件末班导入成镜像。

    3.导出和载入镜像

      导出:将已有的镜像导出成本地文件。

      

    docker save -o  test.tar rmrbest/ubuntu16-phalcon-php7

      -o参数 将镜像文件放到指定文件中

      载入:将本地的导出的镜像再次载入本地镜像:

     

    docker load --input  test.tar
    或
    docker load < test.tar

    4.容器

    创建容器:

      

    docker create it image_id 

    dokcer start container_id(容器的id)

    通过create创建的容器是一个未启用的容器

    创建并使用:相当于create 和 start合并了

    docker run   [option] image

    终止容器

    docker stop container_id  #停止容器

     导入导出容器:

    docker export -o  filename   container_id 
    #实例
    docker export -o test.tar 2c6(名称只填写下部分可以用于区分即可)

    导入容器

    docker import filename
    #实例 docker import test.
    tar

    5.仓库

    在docker.hub中有各种各样的镜像,单个单词的镜像是经过docker公司验证的,带有/ 的是用户自己上传的。

    创建私有仓库:

     官方提供了一个registry镜像用于搭建本地私有化的仓库。

    docker pull registry #先获取registry镜像

    运行并将仓库的目录执行文件夹:registry默认是放到/tmp/registry里的,需要-v参数进行指定(这里-v是创建一个数据卷,用于容器间的数据共享和重用)

    docker run -d -p 5000:5000 -v /home/lx/docker/registry:/tmp/registry registry

    这句的意思是,后台启动registry镜像,并对外开放端口5000端口,仓库存放文件目录是/home/lx/docker/registry文件夹。启动的是一个私有化仓库的服务。

    管理私有化仓库: 

    使用tag命令标记一个镜像用于区分

    docker tag hub.c.163.com/library/nginx 127.0.0.1:5000/mypull

    再上传之前需要增加一个配置,因为docker push 默认走的是https的,所以会报错

    vi /etc/docker/daemon.json

    增加下面:

    {
     "insecure-registries": [
          "127.0.0.1:5000"
        ]
    }

    提交刚才打好标签的镜像

    docker push  127.0.0.1:5000/mypull

    检测效果,删除本地的mypull,

    docker rmi  127.0.0.1:5000/mypull
    docker images docker pull
    127.0.0.1/mypull

    6.总结 :

    仓库,镜像,容器是docker里面最重要的三个东西,可以通过类比增强记忆,仓库就像各种操作系统的集合,里面存着windows的各个版本,你可以从里面下载制作自己的系统,镜像可以类比成我们的windows操作系统,而容器就相当于一个个的软件,启动软件由点击变成了通过命令来执行。

      

  • 相关阅读:
    sws_getContext函数参数介绍
    FFmpeg 将YUV数据转RGB
    信号槽同步
    git stash
    Qt 事件
    Qt 信号与槽函数
    微信红包的算法实现
    Python正则表达式中的re.S
    hive函数 -- split 字符串分割函数
    python None与Null
  • 原文地址:https://www.cnblogs.com/callmelx/p/11024508.html
Copyright © 2011-2022 走看看