不求甚解

此博客为个人学习之用,如与其他作品雷同,纯属巧合。

导航

docker学习笔记一

Posted on 2021-02-05 11:48  三年三班王小朋  阅读(85)  评论(0编辑  收藏  举报

一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。开发和运维之间协做需要很多东西尤其是各个版本的迭代之后,不同版本环境的兼容,docker应运而生。

Docker是基于Go语言实现的开源项目,解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。

docker三要素:镜像、仓库、容器。

docker对比虚拟机优势

1、docker有着比虚拟机更少的抽象层。由于docker不需要hypervisor实现硬件资源虚拟化运行docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在cpu、内粗利用率上docker将会在效率上有明显优势。

2、docker利用的是宿主机的内核,而不需要Guest OS。因此,当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。仍然避免引寻、加载操作系统内核比较费资源的过程。虚拟机加载Guest OS是分钟级别的。docker直接利用宿主机操作系统,忽略了反个过程,只需要几秒。

容器和 VM 之间的差异

  • 容器是一个进程集合,具有自己独特的视图视角;

  • 镜像是容器所需要的所有文件集合,其具备一次构建、到处运行的特点;

  • 容器的生命周期和 initial 进程的生命周期是一样的;

  • 容器和 VM 相比,各有优劣,容器技术在向着强隔离方向发展。

centos Docker安装

支持一下centos本本:

centos7(64-bit),要求系统为64位、系统内核版本为3.10以上

centos6.5(64-bit)或更高版本,要求系统64位,系统内核版本为2.6.32-431或者更高版本。

doctor 安装:


 

1、centos6.5+上命令 yum install -y epel-release  

centos7+

yum install -y yum-utils device-mapper-persistent-data lvm2

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

2、centos6.5+上命令 yum install -y docker-io   centos7.0+   yum install -y docker-ce

3、安装后的配置文件: /etc/sysconfig/docker    centos7.0+   /etc/docker/deamon.json来使用加速器

4、启动Docker后台服务centos6.5+上命令: service docker start    centos7.0+   systemctl start docker

5、docker version 验证  ps -ef|grep docker


 

CentOS Docker 安装

使用官方安装脚本自动安装

安装命令如下:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

也可以使用国内 daocloud 一键安装命令:

curl -sSL https://get.daocloud.io/docker | sh

手动安装

卸载旧版本

较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。

$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

安装 Docker Engine-Community

使用 Docker 仓库进行安装

1、设置仓库

安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。

$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

使用以下命令来设置稳定的仓库。


 使用官方源地址(比较慢)

$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

可以选择国内的一些源地址:

阿里云
$ sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

清华大学源
$ sudo yum-config-manager \
   --add-repo \
   https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo


2、安装 Docker Engine-Community

安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:

$ sudo yum install docker-ce docker-ce-cli containerd.io

Docker 安装完默认未启动。并且已经创建好 docker 用户组,但该用户组下没有用户。

要安装特定版本的 Docker Engine-Community,请在存储库中列出可用版本,然后选择并安装:

1、列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序。

$ yum list docker-ce --showduplicates | sort -r

docker-ce.x86_64  3:18.09.1-3.el7                     docker-ce-stable
docker-ce.x86_64  3:18.09.0-3.el7                     docker-ce-stable
docker-ce.x86_64  18.06.1.ce-3.el7                    docker-ce-stable
docker-ce.x86_64  18.06.0.ce-3.el7                    docker-ce-stable

2、通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-18.09.1。

$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

启动 Docker。

$ sudo systemctl start docker

通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。

$ sudo docker run hello-world

镜像加速

Docker镜像加速器:
/etc/docker/daemon.json
{
"registry-mirrors": ["https://gg3gwnry.mirror.aliyuncs.com"]
}

科大镜像:https://docker.mirrors.ustc.edu.cn/
网易:https://hub-mirror.c.163.com/
阿里云:https://<你的ID>.mirror.aliyuncs.com
七牛云加速器:https://reg-mirror.qiniu.com

 sudo systemctl daemon-reload
 sudo systemctl restart docker

 常见错误

如果是配置了国内镜像,并且镜像文件为/etc/docker/daemon.json,则修改文件后缀为.conf即可正常启动docker 服务

 

检查  /etc/docker/daemon.conf文件内容是否多了“,”等其他位置符号,或者格式不正确

{"registry-mirrors": ["http://34df6785.m.daocloud.io"],} 

 

Docker常用命令

帮助命令

1.docker version     2.docker info      3.docker --help

镜像命令

1.docker images

选项说明:  REPOSITORY:TAG表示镜像仓库源     TAG:镜像的标签      IMAGEID:镜像id    CREATED:镜像创建时间    SIZE 镜像:大小

参数  -a:列出所有镜像    -q:只显示镜像ID  --digests:显示镜像的摘要信息  --no-trunc:显示完整的镜像信息

2.docker search  某个镜像的名字

网站   https://hub.docker.com

命令  -f  starts=30 其他查看 docker search --help   

3.docker pull 某个镜像的名字   用于从镜像仓库中拉取或更新指定镜像    等价于 docker pull tomcat:latest  

4.docker rmi 某个镜像名字ID     

-f:删除单个   

docker rimi -f hello-world

删除多个,中间加空格 

docker rmi -f hello-word nginx

删除全部    

docker rmi -f &(docker images -q) 

容器命令

运行容器 docker run 容器id        

创建一个新的容器并运行一个命令

--name=“容器新名字”:为容易指定一个名称;

-d:后台运行容器,并返回ID,也即启动守护式容器;

-i:以交互模式运行容器,通常与-t同时使用

-t:为容器重新分配一个伪输入终端,通常与-i使用;

-P:随机端口映射;

-p:指定端口映射,有以下四种格式  

查看容器 docker ps                     

列出当前所有正在运行的容器

-a:列出当前所有正在运行的容器+历史运行过的

-l:列出最近创建的容器

-n:显示最近n个创建的容器。

-q:静默模式,只显示容器编号

--no-trunc:不截断输出

退出容器    exit     容器停止退出  ctrl+P+Q 容器不停止退出

启动容器    docker start 容器id或者容器名

重启容器    docker restart 容器id或者容器名

关闭容器    docker stop 容器id或者容器名       强制停止  docker kill容器id或者容器名

删除容器    docker rm 容器id或者容器名        一千次性删除多个容器  docker rm -f $(docker ps -qa)   docker ps -aq|xargs docker rm

启动守护式容器 后台运行docker    

docker run -d centos

查看容器日志  docker logs -f -t 容器ID      参数:-t是加入时间戳  -f更随最新日志打印 --tail数字显示最后多少条

查看容器内运行的进程 docker top 容器ID

查看容器内部的细节 docker inspect 容器ID

启动容器并以命令交互

docker exec -it 容器ID /bin/bash或bash       是在容器中打开新的终端,并且可以启动新的进程  

docker exec -it 98ef9a0b5e52 bash

重新进入docker attach 容器ID    直接进入容器启动命令的终端,不会启动新的进程

从容器内拷贝文件到主机上      docker cp 容器ID:目标文件  本机文件

docker cp b11f8ebc0ef6:/tmp/a.txt /root/cc/b.txt