美文网首页
Docker学习笔记

Docker学习笔记

作者: 蓝色的咖啡 | 来源:发表于2017-06-14 17:29 被阅读178次

    镜像

    获取镜像

    docker pull 镜像服务器地址/镜像名称:版本号

    查看镜像

    docker images

    删除镜像

    1. 普通删除
      docker rmi 镜像名称或ID

    2. 强行删除镜像
      docker rmi -f 镜像名称或ID

    创建镜像

    基于已有镜像的容器创建

    docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

    CONTAINER:容器ID
    主要选项包括:
    -a, --autor="" 作者信息
    -m, --message="" 提交信息
    -p, --pause=true 提交时容器暂停运行

    保存镜像

    如保存本地centos:0.1镜像为文件centos_0.1.tar

    docker save -o centos_0.1.tar centos:0.1

    载入镜像

    docker load -- input centos_0.1.tardocker load < centos_0.1.tar

    容器

    创建容器

    1.普通方式
    docker create -it 镜像名称:TAG

    docker start

    2.新建并启动容器
    docker run -t -i centos:7 /bin/bash

    -t:让Docker分配一个伪终端并绑定到容器的标准输入上
    -i:让容器的标准输入保持打开

    用户可以按ctrl+D或输入exit退出容器,退出后容器自动停止运行

    终止容器

    docker stop 容器ID

    docker restart可重启容器

    进入容器

    1. attach命令
      docker run -idt centos docker attach 容器NAMES

    2. exec命令
      docker exec -ti 镜像ID /bin/bash

    3. nsenter工具

    删除容器

    docker rm 容器ID

    如果需要强制删除容器则加上-f参数
    docker rm -f 容器ID

    导入和导出容器

    1. 导出容器
      docker export CONTAINER > 快照文件.tar

    2. 导入容器
      cat 容器快照.tar | docker import 容器快照.tar

    仓库

    1. 拉取镜像
      docker pull daocloud.io/library/registry:latest

    2. 启动私有仓库

      2.1 语法
      docker run -p 5000:5000 -v <HOST_DIR>:/var/lib/registry daocloud.io/registry

      2.2 示例:

    docker run -d -v /home/docker_repo:/var/lib/registry -p 5000:5000 --restart=always --name registry daocloud.io/library/registry
    
    1. 验证仓库是否启动
      输入http://127.0.0.1:5000/v2/,如果出现界面则正常

    2. 根据已有镜像打TAG
      docker tag hello-world 127.0.0.1:5000/hello-world

    3. 上传镜像
      docker push 127.0.0.1:5000/hello-world

    4. 验证镜像是否上传成功
      输入http://127.0.0.1:5000/v2/_catalog,如果出现界面则正常

    5. 从仓库中下载镜像

    docker rmi hello-world
    docker pull 127.0.0.1:5000/hello-world
    

    数据管理

    挂载一个主机目录作为数据卷

    docker run -ti -v /localhost/dbdata:/usr/dbdata centos:0.1 /bin/bash

    1. "/localhost/dbdata"是主机本地目录
    2. "/usr/dbdata"是容器内的目录,如果目录不存在,容器会自动创建

    数据卷容器

    由已有镜像创建一个数据卷

    docker run -it -v /dbdata --name dbdata daocloud.io/centos

    创建新的容器并挂载已有数据卷

    docker run -it  --volumes-from dbdata --name db1 daocloud.io/centos
    docker run -it  --volumes-from dbdata --name db1 daocloud.io/centos
    

    删除容器同时删除数据卷

    docker rm -v db1

    相关中间件

    Redis

    1.指定配置文件及持久化目录
    docker run -d --net=host --volumes-from redis-data -v /home/docker_repo/redis/conf/redis-16379.conf:/usr/local/etc/redis/redis.conf --name myredis redis redis-server /usr/local/etc/redis/redis.conf

    Zookeeper

    docker run -d -p 12181:2181 -e ZOO_SERVERS='server.1=0.0.0.0:2181' --name zookeeper daocloud.io/library/zookeeper

    RabbitMQ

    1. 启动RabbitMQ
      docker run -d --hostname my-rabbit --name some-rabbit daocloud.io/rabbitmq:3

    2. 启动带有WEB控制台的RabbitMQ
      docker run -d --net=host --name my-rabbit daocloud.io/rabbitmq:3-management

    相关文章

      网友评论

          本文标题:Docker学习笔记

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