docker基本管理:上篇(docker理论概述和基础命令)

文章目录

  • docker理论:
    • Docker概述
      • 什么是Docker
      • Docker与虚拟机的区别
      • Docker的使用场景
      • Docker的功能
    • Docker的核心概念及安装方式
  • docker基础命令:
    • 一.安装docker
    • 二.docker基础命令--镜像篇
    • 三.docker基础命令--容器篇

docker理论:

Docker概述

什么是Docker

●是一种轻量级的“虚拟机”;不需要装系统

●在Linux容器里运行应用的开源工具

●Docker是基于Go语言实现的云开源项目

●Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次封装,到处运行”。

Docker与虚拟机的区别

docker基本管理:上篇(docker理论概述和基础命令)_第1张图片
●Cgroup:docker安全 资源分配 资源逻辑隔离

Docker的使用场景

●打包应用程序简化部署

●可脱离底层硬件任意迁移

●例:服务器从腾讯云迁移到阿里云

●docker是不安全的,因为要和虚拟机一起共享资源

Docker的功能

●简化配置

  • Docker能实现从源代码到配置都打包成一个容器,所以简化了很多配置

●整合服务器

●代码流水线管理

●调试能力

●提高开发效率

  • 配置简化当然就提高了开发效率。Docker还有一个特点就是可以做到测试环境,准生产环境和线上环境几乎保持一样的环境和配置。这个极大减少了开发调试错误和解决问题的效率

●多租户

●隔离应用

  • 多个应用可以放在不同的容器中隔离开来,每一个容器互不干扰其他容器内部的应用

●快速部署

  • 原来的运维人员需要配置很多在线上环境,现在部署软件,就是把所有数据打包成容器,把容器下载启动和简单配置就可以快速完成部署

Docker的核心概念及安装方式

Docker核心概念
●镜像

  • 一个面向Dokcer容器引擎的只读模板

●容器

  • 从镜像创建的运行实例

●仓库

  • 集中保存镜像的地方

CentOS安装Docker的两种方式
●使用CURL获得Docker的安装脚本进行安装

●使用YUM仓库来安装Docker

docker基础命令:

一.安装docker

1.安装依赖包

[root@localhost ~]# yum -y install yum-utils device-mapper-persistent-data lvm2
yum-utils 提供了yum-config-manager

Device mapper:存储驱动程序需要device-mapper-persistent-data lvm2
Device mapper是Liunx2.6内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构
docker基本管理:上篇(docker理论概述和基础命令)_第2张图片
2.设置阿里云镜像资源,下载一个docker-ce

[root@localhost ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.安装docker-ce,并启动

[root@localhost ~]# yum -y install docker-ce
[root@localhost ~]# systemctl start docker.service    ##开启docker

4.配置镜像加速,用浏览器打开阿里云官网,先登录
docker基本管理:上篇(docker理论概述和基础命令)_第3张图片
docker基本管理:上篇(docker理论概述和基础命令)_第4张图片
docker基本管理:上篇(docker理论概述和基础命令)_第5张图片
docker基本管理:上篇(docker理论概述和基础命令)_第6张图片
docker基本管理:上篇(docker理论概述和基础命令)_第7张图片
回到虚拟机在/etc目录下配置镜像加速,并重新加载

[root@localhost docker]# systemctl daemon-reload     ##重新加载系统
[root@localhost docker]# systemctl restart docker   ##重启docker服务

5.配置网络优化

[root@localhost docker]# vim /etc/sysctl.conf   ##开启路由功能
net.ipv4.ip_forward=1       ##底行加入
[root@localhost docker]# sysctl -p    
net.ipv4.ip_forward = 1
[root@localhost docker]# service network restart    ##重启网络功能
[root@localhost docker]# systemctl restart docker    ##重启服务

到此docker就安装完成了

二.docker基础命令–镜像篇

1.查看版本信息

[root@localhost docker]# docker version 

docker基本管理:上篇(docker理论概述和基础命令)_第8张图片
2.搜索nginx镜像

docker search nginx

docker基本管理:上篇(docker理论概述和基础命令)_第9张图片
3.下载nginx镜像

[root@localhost docker]# docker pull nginx

4.查看镜像列表信息

[root@localhost docker]# docker images     ##查看下载镜像信息

在这里插入图片描述
单独查看某个镜像信息
在这里插入图片描述
下载后镜像保存在

[root@localhost overlay2]# cd /var/lib/docker/image/overlay2/

在这里插入图片描述
查看详细信息:docker inspect 镜像名称

[root@localhost overlay2]# docker inspect nginx:latest     ##查看nginx镜像的详细信息

docker基本管理:上篇(docker理论概述和基础命令)_第10张图片
5.修改镜像标签,并不是修改了原有镜像的标签而是设置了一个别名

[root@localhost overlay2]# docker tag nginx:latest nginx:web     ##给nginx镜像添加新标签

在这里插入图片描述
6.删除镜像
删除镜像加标签:Docker rmi 镜像名称:标签

[root@localhost overlay2]# docker rmi nginx:web     ##删除nginx:web标签镜像   
Untagged: nginx:web

在这里插入图片描述
删除镜像加ID号:Docker rmi image id

[root@localhost overlay2]# docker rmi 417af7dc28bc   ##删除httpd镜像
Untagged: httpd:latest

docker基本管理:上篇(docker理论概述和基础命令)_第11张图片
注:这种加ID删除的方法前提是这个镜像文件必须只保留一个标签不能有多个标签;不然删除会报错
docker基本管理:上篇(docker理论概述和基础命令)_第12张图片
7.导出;导入镜像文件
导出镜像文件

[root@localhost overlay2]# docker save -o /opt/nginx nginx:web   ##将nginx镜像文件导出到opt目录下

docker基本管理:上篇(docker理论概述和基础命令)_第13张图片
导入(载入)镜像文件

[root@localhost overlay2]# docker rmi nginx:web    ##将原有的镜像文件删除

在这里插入图片描述

[root@localhost overlay2]# docker load < /opt/nginx    ##将/opt目录下的nginx文件导入

在这里插入图片描述

三.docker基础命令–容器篇

1.创建容器

  • -i:让容器的标准输入保持打开
  • -t:让Docker分配一个伪终端
  • /bin/bash:bash终端
[root@localhost overlay2]# docker create -it nginx:web /bin/bash    ##基于nginx:web镜像创建容器,
88206a23f6a716807b230484ca8ec734d3464d0baf9c53f6e931da64d13c5b03   ##创建的容器序列号

2.查看容器(所有的容器都会被显示不管有没有创建)

[root@localhost overlay2]# docker ps -a

在这里插入图片描述
3.启动容器
docker start ID号

[root@localhost overlay2]# docker start 88206a23f6a7    ##开启nginx容器
88206a23f6a7     ##nginx镜像ID号

在这里插入图片描述
端口为内部端口不是对外的,外部访问这个端口号是没法访问到nginx服务的
这时查看网卡信息

[root@localhost overlay2]# ifconfig

两个网卡信息有区别的
docker基本管理:上篇(docker理论概述和基础命令)_第14张图片
可以依靠这副图去理解:
docker基本管理:上篇(docker理论概述和基础命令)_第15张图片
4.启动执行命令查看系统根目录(将下载镜像;创建容器;启动容器结合)
下载一个centos7的镜像

[root@localhost overlay2]# docker pull centos:7

docker基本管理:上篇(docker理论概述和基础命令)_第16张图片
为centos7创建一个容器

[root@localhost /]# docker create -it centos:7 /bin/bash

在这里插入图片描述
启动centos7容器

[root@localhost /]# docker start 0212f84535ce

在这里插入图片描述
5.想停止centos7容器的话:docker stop ID号

[root@localhost /]# docker stop 0212f84535ce

在这里插入图片描述
有一个命令可以直接将三个步骤结合
这边先将刚刚创建centos7的容器删除(镜像被创建为容器后,必须先删除容器,才能再将镜像删除)

[root@localhost /]# docker ps -a    ##先用查看命令查到centos7容器的ID号

在这里插入图片描述

[root@localhost /]# docker rm 0212f84535ce     ##用docker rm ID删除容器

在这里插入图片描述
用查看镜像信息的命令得到Centos7的镜像ID
在这里插入图片描述

[root@localhost /]# docker rmi 7e6257c9f8d8     ##删除Centos7的镜像文件

在这里插入图片描述
用docker run 镜像名称 bash环境 -c 运行命令(会先去下载镜像再运行)

[root@localhost /]# docker run centos:7 /bin/bash -c ls /

docker基本管理:上篇(docker理论概述和基础命令)_第17张图片
这时查看容器状态会发现,处于exitd状态,容器运行完毕后会自动释放资源,不会占用运行资源。
在这里插入图片描述
如果想持续在后台运行就输入

[root@localhost /]# docker run -d centos:7 /bin/bash -c "while true;do echo hello;done"

docker基本管理:上篇(docker理论概述和基础命令)_第18张图片
要是想停止这种运行状态

[root@localhost /]# docker stop 7923d96499cc    ##用docker stop的方法停止

在这里插入图片描述
6.进入容器(必须保证容器处于up状态)

[root@localhost /]# docker create -it centos:7    ##先创建一个centos7的容器

docker基本管理:上篇(docker理论概述和基础命令)_第19张图片

[root@localhost /]# docker start cb75fd9fc67b    ##启动容器

docker基本管理:上篇(docker理论概述和基础命令)_第20张图片

[root@localhost /]# docker exec -it cb75fd9fc67b /bin/bash    #docker exec -it ID号 进入容器

在这里插入图片描述

[root@cb75fd9fc67b /]# yum -y install net-tools    ##给容器安装ifconfig查看网卡信息的命令

docker基本管理:上篇(docker理论概述和基础命令)_第21张图片
7.退出容器

[root@cb75fd9fc67b /]# exit    ##直接退出
exit

8.容器的导入和导出
导出容器:
docker基本管理:上篇(docker理论概述和基础命令)_第22张图片

[root@localhost /]# docker export 88206a23f6a7 > /opt/nginx_c    ##将nginx的容器导出到/opt目录下

docker基本管理:上篇(docker理论概述和基础命令)_第23张图片
导入容器(会生成镜像,但是不会生成容器)

[root@localhost opt]# docker rm 88206a23f6a7    ##先删除容器
[root@localhost opt]# docker rmi 3f6b82c3706c    ##再删除镜像
Untagged: nginx:web
[root@localhost opt]# cat nginx_c | docker import - nginx:web     ##导入nginx的容器

docker基本管理:上篇(docker理论概述和基础命令)_第24张图片
9.删除容器
首先必须保证这个容器的状态是exitd的状态不然是删除不了的

docker基本管理:上篇(docker理论概述和基础命令)_第25张图片

[root@localhost opt]# docker rm 88206a23f6a7    ##删除容器

docker基本管理:上篇(docker理论概述和基础命令)_第26张图片
批量删除容器
docker基本管理:上篇(docker理论概述和基础命令)_第27张图片
输入批量删除命令(注意容器不能是up状态,不然会删除报错,那就需要将服务停止,再删除;或者是created状态)

[root@localhost opt]# docker ps -a | awk '{print "docker rm "$1}' | bash   

在这里插入图片描述

你可能感兴趣的:(docker容器)