docker

作者: DragonRat | 来源:发表于2023-06-27 12:18 被阅读0次
基础命令:
sudo service docker start
sudo service docker stop
sudo docker --version
docker-run
image.png

docker和vm的区别
docker本质是容器;vm本质相当于虚拟机;所占内存、启动速度、集成性

docker:镜像,容器,仓库 镜像是静态存储,容器是镜像运行起来的动态实例,仓库是存储很多镜像的地方,在远端
镜像分层简单理解:所有的Docker镜像都起始于一个基础镜像层 ,当进行修改或增加新的内容时,就会在当前镜像层之上,创建新的镜像层;
docker镜像基本命令

docker pull <名称>  拉取镜像
docker images   查看所有镜像信息
docker inspect 查看具体镜像信息
docker search <应用名称> 查找
docker rmi <标签或者ID> 删除
docker tag <ID> <tag名称> 修改名称
docker commit <ID> <REPOSETORY:TAG> 创建
docker save -o ***.tar <TAG/ID>  迁出
docker load --input ***.tar 或者 codker load <***.tar 载入
docker push <仓库名称> 上传
docker容器相关命令
docker create -ti ubuntu 创建容器
docker run 创建并运行容器

查看终止的容器: docker ps -a
查看运行的容器: docker ps
重新启动:docker start <ID>
终止容器:docker stop <ID>

进入容器:docker exec -t -i <ID> bash
删除容器:docker rm 
导出容器是指导处一个已经创建的容器到一个文件:docker export <NAMES> > ***.tar
导出的文件又可以使用docker import命令导入,成为镜像:cat aa.tar | docker import - ccc/testcc:cctar
docker相关运用
sudo docker pull nginx
sudo docker ps -a 列出所有容器, 不加 -a 仅列出正在运行的,像退出了的或者仅仅只是创建了的就不列出来
sudo docker run -d -p 8800:80 --name nginx_xiao  nginx  #运行指定的镜像 
dudo docker run -d --privileged=true -p 83:80 --name nginx83 nginx   #提升权限
#宿主主机端口:容器内部端口 
  -d  后台运行   
  -p 8800:80 是指定对外暴露的端口  容器内部用80 对应外部宿主主机的的8800  代理一样
  --name指定容器的名字  最后的nginx 代码要运行的镜像名字  有tag的加上tag 如 nginx:xxx  默认为latest

docker数据管理:数据卷&挂载
数据卷
创建数据卷:docker volume create mydata
查看:docker volume ls 
查看详细信息:docker volume inspect mydata 
挂载:方式1:docker run --name xxxx -p 8888:8888 -v /my:/docker -it imagename /bin/bash
docker run --name xxxx -p 8888:8888 --mount   
type:volume,source=/src/xxx,target=/xxx /my:/docker -it imagename /bin/bash 

挂载:docker run -it --name c1 -v /宿主机目录:/docker目录 -it imagename /bin/bash 

dockerfile:
绑定dockerfile位置:docker build -f /path/to/a/Dockerfile

# This my first nginx Dockerfile
# Version 1.0

# Base images 基础镜像
FROM centos

#MAINTAINER 维护者信息
MAINTAINER tianfeiyu 

#ENV 设置环境变量
ENV PATH /usr/local/nginx/sbin:$PATH

#ADD  文件放在当前目录下,拷过去会自动解压
ADD nginx-1.8.0.tar.gz /usr/local/  
ADD epel-release-latest-7.noarch.rpm /usr/local/  

#RUN 执行以下命令 
RUN rpm -ivh /usr/local/epel-release-latest-7.noarch.rpm
RUN yum install -y wget lftp gcc gcc-c++ make openssl-devel pcre-devel pcre && yum clean all
RUN useradd -s /sbin/nologin -M www

#WORKDIR 相当于cd
WORKDIR /usr/local/nginx-1.8.0 

RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-pcre && make && make install

RUN echo "daemon off;" >> /etc/nginx.conf

#EXPOSE 映射端口
EXPOSE 80

#CMD 运行以下命令
CMD ["nginx"]
dockerignore
.dockerignore 文件的作用类似于 git 工程中的 .gitignore

Compose 是用于定义和运行多容器 Docker 应用程序的工具,通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务

docker容器之间的通信
docker网络通信分类介绍:NET(网络地址转换,涉及到ipv4地址,公网ip,内网),host-only(网卡通信),bridge(网桥,TCP/IP 二层协议,mac地址)对于一个docker 容器,如果没有通过--network进行指定,则默认采用的是bridge桥接模式

网络配置:Docker容器网络资源通过内核的Network Namespace机制实现隔离,不同的Network Namespace有各自的网络设备、协议栈、路由表、防火墙规则等
linux6种namespace
IPC:隔离System V IPC 和 POSIX消息队列
Network:隔离网络资源
Mount:隔离文件系统挂载点
PID:隔离进程ID
UTS:隔离主机名和域名User:隔离用户ID和组ID
docker五种容器的网络模式:none(手动配置)、macvlan(通过macvlan在host网卡上面创建多个子网卡)、host(与主机共享一个Network Namespace)、bridge(docker设计的NAT网络模型)、overlay(跨主机子网络模型 vxlan)

libnetwork:基于CNM的实现;Docker 启动容器时,用来为 Docker 容器提供网络接入功能的插件,它可以让 Docker 容器顺利接入网络,实现主机和容器网络的互通
跨主机网络通信的解决方案:weave,flanne

K8s简介:是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化;特点:1、服务发现和负载平衡 2、存储编排 3、自动部署和回滚 4、自动垃圾箱打包 5、自我修复 6、秘密和配置管理
主节点Master:kube-apiserver etcd kube-scheduler kube-controller-manager cloud-controller-manager
计算节点Node:kubelet kube-proxy Pod

相关文章

  • docker学习

    docker镜像 docker容器 docker仓库 安装docker docker版本 docker分为社区版和...

  • Docker安装和运行

    获取Docker 安装Docker 验证安装 1、获取Docker Docker for Mac Docker f...

  • Docker知识手册

    Docker 容器 启动docker:docker start 查看docker运行状态:docker stats...

  • Docker简介

    章节介绍 # Docker是什么# Docker包括什么# Docker镜像# Docker编配# Docker还...

  • Docker 常用操作

    Docker docker: 18.09.4、nvidia-docker: 2.0.3 docker 19.03 ...

  • rancher+harbor离线安装

    安装docker,此docker为社区版docker。docker官方文档:https://docs.docker...

  • Linux之Docker

    Linux之Docker 目录 Docker简单介绍 在线Docker安装 离线Docker安装 Docker简单...

  • Docker常用命令

    Docker常用命令 Docker帮助命令 docker version:查看docker版本 docker in...

  • Docker基础操作

    Docker部署 Docker安装 镜像加速 Docker 基础命令 Docker镜像管理 搜索镜像docker ...

  • docker容器状态查看命令集

    docker inspect 用法 : docker inspect [docker名称/docker short...

网友评论

      本文标题:docker

      本文链接:https://www.haomeiwen.com/subject/jucnydtx.html