在docker上调用宿主机硬件_docker

一、docker介绍

容器是隔离的环境中运行的一个进程,如果进程结束,容器就会停止,

容器的隔离环境,拥有自己的IP地址,系统文件,主机名,进程管理

(一)、容器和虚拟机的区别

虚拟机

硬件cpu支持(vt虚拟化),模拟计算硬件,走正常的开机启动

启动流程

bios开机自检--根据bios启动项--读取硬盘第一个扇区grub,uefi, centos7, 加载内核,启动系统第一个进程/sbin/init systemd

容器

不需要硬件cpu的支持,共用宿主机内核,启动容器的第一个进程

(二)、docker主要内容

docker是一个cs架构, docker主要内容:镜像 容器 仓库 网络 存储 监控

docker是一个软件的打包技术

docker镜像官方仓库

Docker Hub

(三)、docker 命令分组

docker image 镜像命令

docker container 容器命令

docker volume 卷命令

docker network 网络命令

(四)、容器的作用

be1a3a667d9585fbedefe2d70f055ac6.png

docker使用客户端-服务端(C/S)架构模式,使用远程API来管理和创建docker容器

docker容器通过docker镜像来创建

(五)、容器优势

启动快,性能高,损耗少,轻量级

持续集成、版本控制、可移植性、隔离性和安全性

二、docker系统架构

镜像(images)

Docker镜像是用于创建Docker容器的模板。

容器(Container)

容器是独立运行的一个或一组应用。

客户端(Client)

docker客户端通过命令行或者其他工具使用Docker API与Docker的守护进程通信。

主机(Host)

一个物理或者虚拟机的机器用于执行Docker守护进程和容器。

仓库(Registry)

Docker仓库用来保存镜像,可以理解为代码控制中的代码仓库。

Docker Hub提供了庞大的镜像集合供使用。

Docker Machine

Docker Machine是一个简化Docker安装命令的命令行工具,

通过一个简单的命令行即可在相应的平台上安装Docker,

比如VirtualBox、Digital Ocean、Microsoft Azure。

2cc715fe1d923ef499db3486383deaab.png

三、docker安装

环境准备

98bea620739c5bee2ed6f598b07b9cc2.png

第一步:安装docker-ce

1、下载yum源

wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo

2、优化yum源

sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo

3、下载docker

yum install docker-ce -y

第二步:启动docker

systemctl enable docker
systemctl start docker

第三步:验证(查看docker版本信息)

docker version 

四、docker日常管理

(一)、docker镜像管理

docker镜像加速

1、编写指定文件daemon.json(默认不存在)

vim /etc/docker/daemon.json

{
    "registry-mirrors": [
        "https://registry.docker-cn.com"
    ]
}

2、重启docker服务

systemctl restart docker

2、管理命令

搜索镜像(优先选官方,stars数量多)

docker search php
#命令         镜像名称

拉取镜像(下载镜像,注意版本)

docker pull httpd:latest
#命令       镜像名称:版本

推送镜像(上传镜像)

docker container commit nginx centos6.9_nginx:v1
#命令                    容器 名称  镜像名称:版本

查看镜像属性

docker image inspect centos:6.9
#命令                   镜像名称

导入镜像

docker image load -i docker_nginx.tar.gz 
#命令         导入      镜像路径
docker image import  docker_nginx.tar.gz 
#命令         导入

import导入: 不会导入镜像的名称和版本

load导入 : 会导入镜像的名称和版本

导出镜像

docker save centos:7 -o /tmp/docker_centos7.tar.gz
#命令       镜像    导出   导出位置

查看本地镜像列表

docker image ls

删除镜像

docker image rm centos:6.9
#命令            镜像名称

删除所有镜像

docker rmi -f $(docker images -q)

给镜像打标签

docker image tag 026818835a64 oldboy:v1
#命令             镜像ID       镜像名称:版本

清理镜像

docker image prune

(二)、docker容器管理

创建并启动容器

docker  run -d  -p 80:80  --name web01 nginx:latest 

-d #后台运行容器

-p #进行端口映射(宿主机端口:容器服务端口)

--name #指定容器名称

nginx:latest #镜像名称:版本

创建并进入容器

docker run -it centos:6.9 /bin/bash

-it #分配一个交互式终端

创建容器

docker container create --name web04 nginx:latest

--name #创建容器时指定容器名称,如果不指定,系统自动生成

nginx:latest #镜像名称:版本(必须指定)

启动容器

docker container start web03 
#命令                   容器名称

停止容器

docker container stop web03 

重启容器

docker container restart web03 

强制停止容器

docker container kill web03 

显示容器相对于镜像的改变

docker diff web01

查看容器列表

docker ps -a -q

-a #查看所有容器,长格式显示

-q #只显示容器ID

-l #只显示最后一个容器

不加-a只查看挂起或者启动状态的容器

查看容器状态

docker stats 

--no-stream #只显示一次的状态信息

删除容器

docker container rm web03 
docker container rm -f web03 

-f #强制删除

批量删除所有容器:docker rm -f `docker ps -a -q`

清理容器

docker container prune

查看容器状态

docker inspect web02

查看容器日志

docker logs web02

进入正在运行的容器(分配一个新终端)

docker exec -it web /bin/bash

进入正在运行的容器(使用相同的终端)

偷偷离开的快捷键ctrl +p松开再按ctrl +q

docker container attach web01

docker端口映射

-p 宿主机端口:容器端口

docker  run -d  -p 80:80  --name web01 nginx:latest 

-p 宿主机ip1:宿主机端口:容器端口 (多个容器同时使用80端口)

docker run -d -p 10.0.0.12:85:80 nginx:latest

-p 宿主机ip1::容器端口 随机端口映射

docker run -d -p 10.0.0.12::80 --name web01 nginx:latest

-p 宿主机ip1::容器端口/udp 使用udp协议做随机端口映射

docker run -d -p 10.0.0.12::80/udp nginx:latest

-p 80:80 -p 3306:3306

docker run -d -p 10.0.0.12::80 -p 10.0.0.13::8080 --name web03 nginx:latest

-p 1111-1119:1111-1119 端口范围映射

docker run -d -p 90-95:70-75 --name web04 nginx:latest

-P 自动随机端口映射

docker run -d -P --name web05 nginx:latest 
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值