Docker基础

1.在centos7上安装docker

1.1安装gcc环境

yum -y install gcc

yum -y install gcc-c++

1.2.安装需要的软件包

yum intall -y yum-utils

1.3.设置镜像仓库

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.4.更新yum软件包索引

yum makecache fast

1.5安装Docker

yum -y install docker-ce docker-ce-cli containerd.io

1.6启动docker

systemctl start docker

1.6.1查看Docker安装的版本信息

docker version

1.6.2测试是否安装成功

docker run hello-world

1.6.3卸载Docker

//停止运行docker

systemctl stop docker

//删除软件包

yum remove docker-ce docker-ce-cli containerd.io

//删除docker

rm -rf /var/lib/docker

rm -rf /var/lib/containerd

最好使用镜像加速器,不然会非常卡

2.Docker常用命令

2.1帮助启动类命令

systemctl start docker                #启动docker

systemctl status docker                #查看docker运行状态

systemctl restart docker                 #重启docker服务

systemctl stop docker                         #停止docker服务

docker --help                                         #查看docker帮助文档

2.2docker镜像命令

2.2.1本地镜像管理

  • docker images 列出本地主机上的镜像(语法:docker images [OPTIONS][REPOSITORY[:TAG]])
    • OPTIONS说明:
      • -a :列出本地所有的镜像(含历史映像层);

      • -q :只显示镜像ID;

      • -f :显示满足条件的镜像;

      • --no-trunc :显示完整的镜像信息

  • docker rmi 某个XXX镜像名字ID 删除某个镜像,注意:不能删除正在运行容器的镜像!

    • OPTIONS说明:

      • -f :强制删除;

      • --no-prune :不移除该镜像的过程镜像,默认移除;

  • docker tag : 标记本地镜像,将其归入某一仓库。

    • docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

  • docker build 命令用于使用 Dockerfile 创建镜像。

    • docker  build [OPTIONS] PATH | URL |

      • -f :指定要使用的Dockerfile路径;

      • -m :设置内存最大值;

      • --quiet, -q :安静模式,成功后只输出镜像 ID;

      • --tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。

  • docker history : 查看指定镜像的创建历史。

    • docker history [OPTIONS] IMAGE

      • -H :以可读的格式打印镜像大小和日期,默认为true;

      • -q :仅列出提交记录ID。

      • --no-trunc :显示完整的提交记录;

  • docker save : 将指定镜像保存成 tar 归档文件。

    • docker save [OPTIONS] IMAGE [IMAGE...]

      • -o :输出到的文件。

  • docker load : 导入使用 docker save 命令导出的镜像。

    • docker load [OPTIONS]

      • --input , -i : 指定导入的文件,代替 STDIN。

      • --quiet , -q : 精简输出信息。

  • docker import : 从归档文件中创建镜像。

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

      • -c :应用docker 指令创建镜像;

      • -m :提交时的说明文字;

2.2.2镜像仓库

  • Docker login/logout 命令

    • docker login : 登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub

    • docker logout : 登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub

      • -u :登陆的用户名

      • -p :登陆的密码

  • docker search 某个XXX镜像名字 指定搜索某个镜像的名称。(语法:docker search[OPTIONS]TERM)
    • OPTIONS说明
      • --limit : 只列出N个镜像,默认25个
      • --no-trunc:显示完整的镜像描述

  • docker pull 某个XXX镜像名字 拉取指定的镜像到本地(下载镜像)。(语法:docker pull 镜像名字[:TAG])

    • -a :拉取所有 TAG 镜像

    • --disable-content-trust :忽略镜像的校验,默认开启。

  • docker push : 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库

    • docker push [OPTIONS] NAME[:TAG]

      • -a:将镜像的所有标签推送到存储库

      • --disable-content-trust :忽略镜像的校验,默认开启

      • -q:抑制详细输出(我是不太明白这个的意思了)

2.3docker容器命令

2.3.1容器生命周期管理

  • docker run :启动容器
    • docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
      • --name="容器新名字" 为容器指定一个名称;
      • -d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);
      • -i:以交互模式运行容器,通常与 -t 同时使用;
      • -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
      • -P: 随机端口映射,大写P
      • -p: 指定端口映射,小写p
      • -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项

      • -m :设置容器使用内存最大值;

  • Docker start/stop/restart 命令

    • docker start :启动一个或多个已经被停止的容器

    • docker stop :停止一个运行中的容器

    • docker restart :重启容器

  • docker kill :强制停止容器

    • -s :向容器发送一个信号

  • docker rm :删除已停止的容器

    • -f :强制删除一个运行中的容器。

    • -v :删除与容器关联的卷。

  • Docker pause/unpause 命令

    • docker pause :暂停容器中所有的进程。

    • docker unpause :恢复容器中所有的进程。

  • docker create :创建一个新的容器但不启动它(用法同docker run)

2.3.2容器操作

  • docker ps : 列出正在运行的容器
    • docker ps [OPTIONS]
      • -a :列出当前所有正在运行的容器+历史上运行过的
      • -l :显示最近创建的容器。
      • -n:显示最近n个创建的容器。
      • -q :只显示正在运行的容器编号。
      • -s :显示总的文件大小。

  • 退出容器的命令

    • exit run进去容器,exit退出,容器停止

    • ctrl+p+q run进去容器,ctrl+p+q退出,容器不停止

  • docker logs : 查看容器日志的命令

    • -f : 跟踪日志输出

    • --since :显示某个开始时间的所有日志

    • --tail :仅列出最新N条容器日志

    • -t : 显示时间戳

  • docker top :查看容器中运行的进程信息,支持 ps 命令参数。

  • docker inspect:查看容器内部具体细节命令

  • docker exec :进入运行容器,进去后用exit命令退出不会导致容器停止运行

    • -d :分离模式: 在后台运行

    • -i :即使没有附加也保持STDIN 打开

    • -t :分配一个伪终端

  • docker attach :连接到正在运行中的容器。进去后用exit命令退出会导致容器停止运行

  • docker wait : 阻塞运行直到容器停止,然后打印出它的退出代码。

  • docker export :将文件系统作为一个tar归档文件导出到STDOUT。

  • docker port :列出指定的容器的端口映射,或者查找将PRIVATE_PORT NAT到面向公众的端口。

  • docker events : 从服务器获取实时事件

3.其他命令

  • docker info : 显示 Docker 系统信息,包括镜像和容器数。
  • docker version :显示 Docker 版本信息。
  • docker cp :用于容器与主机之间的数据拷贝。
    • -L :保持源目标中的链接

  • docker diff : 检查容器里文件结构的更改。

  • docker commit :从容器创建一个新的镜像。

    • a :提交的镜像作者;

    • -c :使用Dockerfile指令来创建镜像;

    • -m :提交时的说明文字;

    • -p :在commit时,将容器暂停。

4.创建新镜像

4.1使用commit

举例,给基本ubuntu镜像添加vim命令

  1. docker run untu /bin/bash //先运行容器
  2. apt-get -y install vim         //安装vim指令
  3. docker commit -m="新镜像名" -a="作者名" 要创建的目标镜像名:[标签名]

5.Docker容器数据卷

5.1容器卷基本概念

先来看一条指令

docker run -d -p 5000:5000 -v /krisswen/myregistry/:/tmp/registry --privileged=true registry

  • /krisswen/myregistry/: 定义的是宿主机的目录,该目录如果不存在,会被自动创建。
  • /tmp/registry: 容器内部的数据目录。
  • --privileged=true :必须要加上,否则数据卷挂载失败。

什么是数据卷?

数据卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统。

数据卷功能?

为了在docker中保存数据。

数据卷的特点:

  1. 数据卷可在容器之间共享或重用数据
  2. 卷中的更改可以直接实时生效
  3. 数据卷中的更改不会包含在镜像的更新中
  4. 数据卷的生命周期一直持续到没有容器使用它为止

5.2容器卷案例

docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名

以ubtntu为例子,在宿主机和容器之间添加数据卷。

docker run -it --privileged=true -v /tmp/hostData:/tmp/dockerData1 ubuntu /bin/bash

这就好了,很轻松吧。下面是查看数据卷是否挂载成功,这个时候就要用到inspect命令(之前还以为这个命令完全用不到来着)

docker inspect 容器id

上面的挂载,默认在容器内部的目录都可以进行读写操作。如果我们只想在容 器内部进行读操作呢? 我们需要加上:ro标识

docker run -it --privileged=true -v /tmp/hostData:/tmp/dockerData1:ro ubuntu /bin/bash

容器的数据卷还可以被继承和共享。

语法格式:docker run -it --privileged=true --volumes-from 父类 --name u2 ubuntu

这样我们就实现了不同容器之间的数据共享了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值