Docker安装与基础操作

Docker优势:

1.交付物标准化:标准化设计大大提高了物流体系的运行效率。传统的软件交付物包括:应                              用程序、依赖软件安装包、配置说明文档、安装文档、上线文档等非标准                                化组件。

2.一次构建,多次交付:类似于集装箱的"一次装箱,多次运输",Docker镜像可以做到"一次                                         构建,多次交付"

3.应用隔离:Docker可以隔离不同应用程序之间的相互影响,但是比虚拟机开销更小

总之容器技术部署速度快,开发,测试更敏捷,提高系统利用率,降低资源成本。

 Docker的度量:Docker是利用容器来实现的一种轻量级的虚拟技术,从而在保证隔离性的    同时达到节省资源的目的。Docker的可移植性可以让它一次建立,到处运行。Docker的度量可以从以下四个方面进行:

1.隔离性:Docker采用libcontainer作为默认容器,代替了以前的LXC。libcontainer的隔离性主要是通过内核的命名空间来实现的,有pid、net、ipc、mnt、uts命令空间,将容器的进程、网络、消息、文件系统和主机名进行隔离。

2.可度量性: Docker主要通过cgroups控制组来控制资源的度量和分配。

3.移植性:Docker利用AUFS来实现对容器的快速更新。AUFS是一种支持将不同目录挂载到同一个虚拟文件系统下的文件系统,支持对每个目录的读写权限管理。

4.安全性:安全性可以分为容器内部之间的安全性;容器与托管主机之间的安全性。容器内部之间的安全性主要是通过命名空间和cgroups来保证的。容器与托管主机之间的安全性主要是通过内核能力机制的控制,可以防止Docker非法入侵托管主机。

 一、安装配置docker

1.国内源安装新版docker

配置阿里云Docker Yum源
    # yum install -y yum-utils device-mapper-persistent-data lvm2 git
    # yum-config-manager --add-repo http://mirrors.aliyun.com/docker- 
      ce/linux/centos/docker-ce.repo
安装最新版本
    # yum install docker-ce -y
查看docker版本
    # yum list docker-ce --showduplicates
启动docker服务
    # systemctl enable docker
    # systemctl start docker
查看docker版本状态
    # docker -v
查看docker运行状态
    # docker info

2.生成docker的环境配置

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://pilvpemn.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
#注意:一定注意编码问题,出现错误---查看命令:journalctl -amu docker 即可发现错误

3.docker数据存储位置

查看存储路径
[root@yixuan ~]# docker info | grep Root
修改默认存储位置:
在dockerd的启动命令后面追加--data-root参数指定新的位置
[root@yixuan ~]# vim  /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --data-root=/data
[root@yixuan ~]# systemctl daemon-reload 
[root@yixuan ~]# systemctl restart docker
查看是否生效:
[root@yixuan ~]# docker info | grep Root

二、Doctor的基础命令

镜像管理

# 搜索镜像 -f 指定star数量

docker search iname [-f starts=100]

# 拉取镜像

docker pull iname

#查看本地镜像 -q 只显示id

docker image list

docker images

docker image ls

#查看镜像的详细信息

docker image inspect iname

#删除镜像

docker  rmi  iname

#删除所有镜像 -f 强制删除,但是实际镜像不会删除,如果镜像删除不掉,说明可能有容器正在运行

docker  rmi  $(docker images -q)  [-f]

#查看镜像的制作过程

docker history iname

容器管理

 #创建容器 -i 标准的输入输出 -t 分配一个虚拟终端  -d  后台运行 --name 指定容器的名字 -p 指定端口映射 -e 指定环境变量

docker  run  -itd  iname   #运行回启动容器

docker  create  -it  iname  #创建容器,但是不启动

#查看运行中容器,-a 可以查看所有状态

docker  ps

#删除容器  -f  强制删除

docker  rm [-f]  cname

#查看容器的详细信息

docker  inspect  cname

#启动

docker  start

#关闭

docker  stop

#重启

docker  restart

#挂起

docker  pause

#恢复

docker  unpause

#强制关闭

docker  kill

#进入容器

docker  attach  cname  #通过命令进入容器 command,不常用

docker  exec  -it  cname  command  #进入容器,在退出时无需执行ctrl+p+q,不会影响容器运行,command可以直接写为 /bin/bash

#复制

docker  cp  cname:path  hostpath

#查看容器内的进程

docker  top  cname

#容器使用宿主机资源情况

docker  stats  [cname]

#查看容器日志

docker  logs  cname

#等待容器关闭返回值

docker  wait

#docker 服务日志

docker events

#展示已经映射的端口

docker port  cname

#查看容器内部的变化

docker  diff

 容器打包

docker export  -o  cname.tar  cname

docker  export  cname > iname.tar   (cname为容器名,iname为镜像名)

#导入镜像归档文件到其他宿主机:

docker  import  cname.tar   cname:v1

 镜像迁移

#保存一台宿主机上的镜像为tar文件,然后可以导入到其他宿主机上:save

讲镜像打包,与下面的load命令相对应

docker save -o  nginx.tar  nginx:tag

load

#与上面的save命令相对应,将上面save命令打包的镜像通过load命令导入

docker  load  <  nginx.tar

#容器的迁移

docker  export  b25f3c  |  gzip > mynginx123.tar

zcat  mynginx123.tar  |  docker import  - mynginx123

镜像,容器深度操作

#显示镜像摘要 

docker  images  --digests

#过滤镜像

docker  images  [-f|--filter] "key=value"

dangling:显示标记为空的镜像,值只有true和false
label:这个是根据标签进行过滤,其中lable的值,是docker在编译的时候配置的或者在Dockerfile中配置的
before:这个是根据时间来进行过滤,其中before的value表示某个镜像构建时间之前的镜像列表
since:跟before正好相反,表示的是在某个镜像构建之后构建的镜像
reference:添加正则进行匹配

#镜像格式化输出

docker images --format "{{.ID}}\t{{.Repository}}"

.ID    镜像ID
.Repository    镜像仓库
.Tag 镜像标签[版本]
.Digest    镜像hash值
.CreatedSince 创建镜像后的时间
.CreatedAt    创建镜像的时间
.Size 镜像大小

#容器格式化输出

docker ps --format "{{.ID}}\t{{.Command}}"

.ID    容器ID
.Image    镜像ID
.Command    执行的命令
.CreatedAt    容器创建时间
.RunningFor    运行时长
.Ports    暴露的端口
.Status    容器状态
.Names    容器名称
.Label    分配给容器的所有标签
.Mounts    容器挂载的卷
.Networks    容器所用的网络名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值