(Docker)01_Docker基础

一、Dokcer

中文:码头工人
在当前技术领域。容器虚拟化技术 还不太成熟 但是是未来的一种流行趋势。也是一种势在必行的发展技术。

容器不需要模拟层(emulation layer)和管理层(hypervisor layer),而是使用操作系统的系统调用接口。这降低了运行单个容器所需的开销,也使得宿主机中可以运行更多的容器。
 容器虚拟化的是操作系统而不是硬件,容器之间是共享同一套操作系统资源的。虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统。

在这里插入图片描述
Docker版本:
社区版
企业版

二、安装:在Centos

前提条件

目前,CentOS 仅发行版本中的内核支持 Docker。
Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为2.6.32-431 或者更高版本。

在这里插入图片描述

  1. 卸载旧版本
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
  1. 安装依赖
yum -y install gcc
yum -y install gcc-c++
yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
  1. 设置镜像库
    官方镜像(不推荐)
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

阿里镜像(推荐)

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 更新yum软件包索引
yum makecache fast
  1. 安装dokcer CE
yum install docker-ce docker-ce-cli containerd.io
  1. 启动docker容器
systemctl start docker
  1. 测试
docker run hello-world

在这里插入图片描述

  1. docker的其他命令
查看版本信息
docker version
查看docker的状态
systemctl status docker
查看docker的详细信息
docker info
docker的启动
systemctl start docker
docekr 停止
systemctl stop docker
重启
systemctl restart docker
将docker 设为开机启动的
systemctl enable docker
  1. docker的卸载
yum remove docker-ce
rm -rf /var/lib/docker

三、docker的架构

在这里插入图片描述

四、docker镜像操作

Docker 镜像是容器的基础。镜像是一个有序集合,其中包含根文件系统更改和在容器运行时中使用的相应执行参数。镜像通常 包含堆叠在彼此之上的联合分层文件系统。镜像没有状态并且始终不会发生更改。 当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。

4.1. 查找镜像

docker search centos

4.2. 拉取镜像

docker  pull 镜像名称:[镜像版本,可省略 省略则为最新版]

在这里插入图片描述
为了解决国内下载过慢 配置阿里的镜像加速器
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
在这里插入图片描述
在这里插入图片描述

docker pull centos

4.3.查看容器中所有的镜像

在这里插入图片描述

4.4. 删除镜像:

docker rmi 镜像名/id  #删除单个镜像
docker rmi 镜像名/id   镜像名/id  镜像名/id #删除多个镜像
docker rmi -f $(docker images -qa) #删除所有镜像

五、容器的操作

容器是docker镜像在运行时产生的对象实例。 一个镜像可以产生多个容器
要产生容器 必须要先有镜像。

5.1.创建容器

docker run [options] image command [ARG...]

OPTIONS说明(常用):有些是一个减号,有些是两个减号
–name=“容器新名字”: 为容器指定一个名称;
-d: 后台运行容器,并返回容器ID,也即启动守护式容器;
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-P: 随机端口映射;
-p: 指定端口映射,有以下四种格式
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort
在这里插入图片描述
在这里插入图片描述

5.2. 查看容器

在这里插入图片描述

5.3. 进入容器

方式一:
在这里插入图片描述
方式二:
在这里插入图片描述

5.4. 启动容器

 docker start c3

5.5. 停止容器

docker stop c3

5.6.退出容器

exit 容器停止退出(与进入方式有关)
ctrl+p+Q  容器不停止退出

5.7. 获取容器/镜像的元数据

docker inspect c3

5.8. 删除容器

前提:删除不能删除运行中的容器

docker rm 容器名称/id  #删除一个容器
docker rm 容器名称/id   容器名称/id  容器名称/id  删除多个容器
docker rm -f $(docker ps -qa)) #删除所有容器

5.9.查看容器的日志

docker logs 容器名称/id

5.10. 文件拷贝

从宿主机到容器

docker cp test.txt c1:/root
docker cp  需要拷贝的目录或文件  容器名称/id:目标路径

从容器到宿主机

[root@localhost ~]# docker cp c1:/root/hello.txt /root

5.11. 目录挂载

在创建容器的时候 将宿主机的目录与容器内的目录进行映射,这样之后 就可以通过修改宿主机的目录来影响容器内对应的目录

docker run -itd --name=c2 -v /opt:/usr/local/testopt centos
#将宿主机中的opt目录和容器内的/usr/local/testopt目录做一个映射 也成为挂载

如果挂载的时多级目录 有可能会出现权限不足的问题
在这里插入图片描述
这是因为CentOS7中的安全模块selinux把权限禁掉了,我们需要添加参数 --privileged=true 来解决挂载的目录没有权限的问题

docker run ‐itd ‐‐privileged=true  --name=c3 -v /opt:/usr/local/testopt
发布了67 篇原创文章 · 获赞 6 · 访问量 1902

猜你喜欢

转载自blog.csdn.net/weixin_45801537/article/details/105245008