zoukankan      html  css  js  c++  java
  • docker安装文档

    Docker离线安装以及本地yum源构建
    http://blog.csdn.net/joniers/article/details/64122820
    http://blog.csdn.net/wsscy2004/article/details/25878363

    在线安装
    yum install –downloadonly –downloaddir=/home/docker-ce/dockerRpm docker-ce

    离线安装
    1、备份原yum源
    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bk

    2、vim /etc/yum.repos.d/docker-ce.repo
    [docker]
    name=docker
    baseurl=file:///opt/dockerRpm
    gpgcheck=0
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

    3、createrepo -d /opt/dockerRpm
    --yum repolist
    yum clean all
    yum makecache
    --yum list 看是否输出了新的rpm包,如果能查询到,证明配置成功

    4、yum -y install docker-ce

    5、还原原yum源
    mv /etc/yum.repos.d/CentOS-Base.repo.bk /etc/yum.repos.d/CentOS-Base.repo

    基本命令
    启动docker
    service docker start

    查看镜像
    docker images
    docker images centos

    配置Docker中国区官方镜像
    http://blog.csdn.net/zzy1078689276/article/details/77371782
    1、vim /etc/docker/daemon.json
    {
    "registry-mirrors": ["https://registry.docker-cn.com"]
    }
    2、使docker的配置文件生效
    systemctl daemon-reload
    systemctl restart docker

    搜索镜像
    docker search centos | grep 6

    拉取镜像
    docker pull centos:centos6
    docker run centos 运行,不存在会自动拉取

    创建新容器并运行bash
    docker run -it centos:centos6 #前台启动
    docker run -dit centos:centos6 #仅仅启动时放后台(仅-d 运行不了)
    停止docker服务,所有的容器都会停止

    显示所有容器
    docker ps -a

    查看后台运行的容器
    docker logs [-f] id/name 输出容器日志 -f:实时输出

    启动存在的容器
    docker start id/name

    连接启动的容器
    docker attach id/name

    停止存在的容器
    docker stop id/name

    容器内退出
    ctrl + D (exit) 退出并停止
    [ctrl + P][ctrl + Q] 仅退出

    在容器中执行命令,[ctrl+D]退出后,不会终止容器运行
    docker exec -it [CONTAINER_NAME or CONTAINER_ID] /bin/bash

    删除未运行容器
    docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm
    -q : 静默模式,只显示容器编号。

    删除所有容器
    docker ps -a | awk '{print $1 }'|xargs docker rm

    删除镜像
    docker rmi centos:lastest #lastest为tag
    docker rmi 7ea307891843 #7ea307891843为IMAGE ID
    docker images |grep none |awk '{print $3}'|xargs docker rmi [-f]

    删除所有镜像
    docker rmi $(docker images -q)

    #构建新镜像:
    docker build -t centos6:memcached ./memcached #./memcached目录下有Dockerfile文件

    #运行新镜像:
    docker run -d -p 11211:11211 centos6:memcached
    docker run --device=/dev/sda:/dev/xvdc:r 挂载硬件

    #docker停止运行的镜像
    docker stop/kill container_id
    docker stop `docker ps | grep memcached |awk { 'print $1'}`

    创建容器 且不采用分配的容器id 使用自定义名字
    docker run -dit --name myconn

    查看镜像/容器信息
    docker inspect [ image_name, image_id,container_name,container_id,]

    创建容器(选项全)
    -e 将自定义环境变量传入容器
    docker run -dit --privileged=true -e P_HOST=172.17.0.1 -p 9100:9100 --device=/dev/bus/usb/002/020:/dev/dog/superdog/superdog:r -v /opt:/opt --name fosafer_docker centos:centos6 /bin/bash

    ln -sf /dev/bus/usb/001/017 /dev/dog/superdog/1-2.1

    docker run -dit --privileged=true -e P_HOST=172.17.0.1 -p 9100:9100 --device=/dev/bus/usb/001/017:/dev/dog/superdog/1-2.1:r -v /opt:/opt --name fosafer_docker(容器名) centos:centos6(镜像名/ID) /bin/bash

    在docker下载ubuntu和分享/dev/ttyUSB0
    使用可以使用访问USB设备没有–privileged模式:
    docker run -t -i --device=/dev/ttyUSB0 ubuntu bash
    或者,假设您的USB设备可用于在/ dev / bus / usb中的主机上的驱动程序工作等,您可以使用特权模式和volumes选项将其装入容器。例如:
    docker run -t -i --privileged -v /dev/bus/usb:/dev/bus/usb ubuntu bash

    数据传输
    正确
    docker cp haha:/src dest
    docker cp src haha:/dest

    主机读容器
    docker cp <containerId>:/file/path/within/container /host/path/target

    主机写容器
    推荐
    docker inspect -f '{{.Id}}' haha
    显示 d8e70
    cp file.txt /var/lib/docker/aufs/mnt/**d8e

    1.用-v挂载主机数据卷到容器内
    docker run -v /path/to/hostdir:/mnt $container
    在容器内拷贝
    cp /mnt/sourcefile /path/to/destfile

    2.直接在主机上拷贝到容器物理存储系统
    A. 获取容器名称或者id :
    docker ps

    B. 获取整个容器的id
    docker inspect -f '{{.Id}}' 步骤A获取的名称或者id

    C. 在主机上拷贝文件:
    sudo cp path-file-host /var/lib/docker/aufs/mnt/FULL_CONTAINER_ID/PATH-NEW-FILE

    sudo cp path-file-host /var/lib/docker/devicemapper/mnt/123abc<<id>>/rootfs/root

    例子:
    $ docker ps

    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    d8e703d7e303 solidleon/ssh:latest /usr/sbin/sshd -D cranky_pare

    $ docker inspect -f '{{.Id}}' cranky_pare
    or
    $ docker inspect -f '{{.Id}}' d8e703d7e303

    d8e703d7e3039a6df6d01bd7fb58d1882e592a85059eb16c4b83cf91847f88e5

    $ sudo cp file.txt /var/lib/docker/aufs/mnt/**d8e703d7e3039a6df6d01bd7fb58d1882e592a85059eb16c4b83cf91847f88e5

    3.用输入输出符
    docker run -i ubuntu /bin/bash -c 'cat > /path/to/container/file' < /path/to/host/file/

    docker exec -i <container_id> bash -c 'cat > /path/to/container/file' < /path/to/host/file/ 可行
    docker exec -it <container_id> bash -c 'cat > /path/to/container/file' < /path/to/host/file/ 有点问题


    镜像/容器导入导出
    镜像的导出
    docker images
    docker save 9045 > tomcat8-apr.tar #9045为镜像ID的前四位

    镜像的导入
    docker load < tomcat8-apr.tar
    docker tag 9045 tomcat8-apr:3.0 #添加标签

    持久化:::BEST:::
    容器的导出
    docker export b91d9ad83efa > tomcat80824.tar

    容器的导入
    docker import tomcat80824.tar

    镜像和容器 导出和导入的区别
    镜像导入和容器导入的区别:
    1)容器导入 是将当前容器 变成一个新的镜像
    2)镜像导入 是复制的过程

    save 和 export区别:
    1)save 保存镜像所有的信息-包含历史
    2)export 只导出当前的信息


    docker镜像导入导出
    http://www.jianshu.com/p/8408e06b7273
    导入
    docker import auth_cloud.tar auth_cloud:v1

    获取宿主机ip
    ip addr show docker0 | grep "inet" | awk '{print $2}' | cut -d / -f1
    ifconfig docker0 |grep "inet" | awk '{print $2}'

    Docker常用命令
    http://blog.csdn.net/zhang__jiayu/article/details/42611469

    Docker CE 镜像源站 阿里云安装docker
    https://yq.aliyun.com/articles/110806?commentId=11066
    001-在 Cent OS 7 上安装 docker-ce
    http://blog.csdn.net/xixiworld/article/details/71438794
    Centos 环境Docker离线安装方式
    http://blog.csdn.net/h363659487/article/details/77159306
    保存对容器的修改
    无需拷贝完整的id,通常来讲最开始的三至四个字母即可区分。(译者按:非常类似git里面的版本号)
    正确的命令:
    $docker commit 698 learn/ping
    执行完docker commit命令之后,会返回新版本镜像的id号。

  • 相关阅读:
    第十四周 Leetcode 315. Count of Smaller Numbers After Self(HARD) 主席树
    POJ1050 To the Max 最大子矩阵
    POJ1259 The Picnic 最大空凸包问题 DP
    POJ 3734 Blocks 矩阵递推
    POJ2686 Traveling by Stagecoach 状态压缩DP
    iOS上架ipa上传问题那些事
    深入浅出iOS事件机制
    iOS如何跳到系统设置里的各种设置界面
    坑爹的私有API
    业务层网络请求封装
  • 原文地址:https://www.cnblogs.com/sherlockhomles/p/8717823.html
Copyright © 2011-2022 走看看