#yyds干货盘点#--docker容器快速入门

Posted 旺仔呀旺仔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点#--docker容器快速入门相关的知识,希望对你有一定的参考价值。

一、docket是什么

Docker是通过内核虚拟化技术(namespaces及cgroups)来提供容器的资源隔离与资源限制。由于Docker通过操作系统层的虚拟化实现隔离(对操作系统的内核有要求),所以Docker容器在运行时,不需要类似虚拟机(VM)额外的操作系统开销,从而比kvm虚拟机更轻量。

docker是一种软件的打包技术

二、docker的理念

docker的主要目标是"Build,Ship and Run any App,Angwhere",构建,运输,和运行任何应用程序

  • 构建:制作docker镜像,打包容器的所有系统目录文件
  • 运输:下载docker镜像
  • 运行:基于docker镜像提供的rootfs,启动容器

总结:只要能运行docker容器,那么docker镜像中已经安装好的软件也可以运行,所以说docker是一种软件的打包技术。

三、docker的优点

  1. 解决了操作系统和软件运行环境的依赖
    nginx openssl
    git openssl

  2. 对于开发人员来说,再也不用担心不会部署开发环境

  3. 开发环境,测试环境和生产环境高度一致。

  4. 让用户体验产品新特性的又一种思路。

四、docker安装

4.1 配置yum源

rm -fr  /etc/yum.repos.d/local.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
sed -i s#download.docker.com#mirrors.tuna.tsinghua.edu.cn/docker-ce#g /etc/yum.repos.d/docker-ce.repo

4.2 安装docker-ce:并启动

yum install docker-ce -y

[root@docker1 ~]# systemctl start docker.service 
[root@docker1 ~]# systemctl status  docker.service 

五、启动第一个docker容器

docker容器是一种软件的打包技术,接下来我们体验一下

  1. 传统编译安装nginx:
  2. 官网下载Nginx源码包wget
  3. tar解压源码包
  4. 创建Nginx用户
  5. 安装依赖包
  6. 编译安装三部曲configure,make,make install
  7. 修改nginx配置文件
  8. 启动nginx

启动一个docker容器

docker run -d -p 80:80  nginx

参数说明:

  • run (创建并运行一个容器)
  • -d 放在后台
  • -p 端口映射
  • nginx docker镜像的名字

六、docker容器加速

vi /etc/docker/daemon.json

  "registry-mirrors": ["https://registry.docker-cn.com"] #更换成国内镜像源


systemctl  restart docker

  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"] 中国科技大学加速

七、 镜像管理命令

  1. 搜索镜像:docker search


选镜像的建议:

  • 优先考虑官方
  • starts数量多
  1. 获取镜像

    docker pull(push)
    镜像加速器:阿里云加速器,daocloud加速器,中科大加速器,Docker 中国官方镜像加速:https://registry.docker-cn.com

    docker pull centos:6.8(没有指定版本,默认会下载最新版)
    docker pull daocloud.io/huangzhichong/alpine-cn:latest

    例:

  1. 查看镜像
    docker images
  2. 删除镜像
    docker rmi
    • 例子:docker image rm centos:latest
  3. 导出镜像
    docker save
    • 例子:docker image save centos > docker-centos7.4.tar.gz
  4. 导入镜像
    docker load
    • 例子:docker image load -i docker-centos7.4.tar.gz

八 容器常用命令

  1. 停止容器
    • docker stop ID或名字
    • docker container stop 接容器名字或id
  2. 杀死容器
    • docker kill container_name
  3. 查看容器列表
    • docker ps 查看up状态容器列表
    • docker ps –a 查看所有容器列表
    • docker ps -a -l --no-trunc 查看完整状态
  4. 删除容器
    docker rm
  5. 批量删除容器(退出状态)

    • docker rm -f docker ps -a -q
  6. 启动一个docker容器
docker run -d -p 80:80  nginx

参数说明:

  • run (创建并运行一个容器)
  • -d 放在后台
  • -p 端口映射
  • nginx docker镜像的名字
  1. 启动容器并直接进入后台
    docker run -it --name centos6 centos:6.8 /bin/bash
    • -it 分配交互式的终端
    • --name 指定容器的名字
    • /bin/sh 覆盖容器的初始命令
  • --cpus 指定cpu的数量
  • --memory 限定内存的大小
  • -h 指定容器的主机名
  1. 进入容器的方法

目的:排错,调试

方法一:

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
  • 例子:

    docker exec -it 容器id或容器名字 /bin/bash

方法二:

docker attach [OPTIONS] CONTAINER
  • 例子:

    docker attach 容器id或容器名字

方法三:
nsenter(安装yum install -y util-linux 弃用)

  1. docker的本质

docker的本质是:在隔离的环境运行的一个进程

所以:docker容器内的第一个进程必须一直处于前台运行的状态(必须夯住),否则这个容器,就会处于退出状态!

  1. 查看容器日志
    docker logs container-name/container-id

以上是关于#yyds干货盘点#--docker容器快速入门的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点#k8s进阶知识概述

#yyds干货盘点# Docker 安装与启动

#yyds干货盘点# docker vs docker-compose 解密

#yyds干货盘点#容器与容器编排系统

Prometheus+Grafana监控系统配合Cadvisor监控Docker容器 #yyds干货盘点#

#yyds干货盘点#docker 与 k8s 底层架构的区别