Docker学习笔记

镜像

获取镜像

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 :/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学习笔记)