首页 > 其他分享 >Docker 基础

Docker 基础

时间:2024-07-11 13:51:44浏览次数:10  
标签:容器 基础 ce nginx yum 镜像 Docker docker

安装

  1. 卸载老版本(如果有)

    yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine
    
  2. 安装 yum-utils 工具

    yum install -y yum-utils
    
  3. 配置 yum-utils 的 yum-config-manager 源,以下二选一

    # 阿里
    yum-config-manager \
        --add-repo \
        https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
        
    # 清华大学
    yum-config-manager \
        --add-repo \
        https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
    
  4. 安装 docker

    # 没有指定版本就是安装最新版本
    yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    

    安装了 5 个软件,分别是:docker-ce、 docker-ce-cli、containerd.io、docker-buildx-plugin、docker-compose-plugin

    如果要指定版本安装,就把这些软件目前可下载的版本列出来看一下,然后再选择对应的版本安装

    # 看 docker-ce 版本
    yum list docker-ce --showduplicates | sort -r
    
    # 这是下载的,第二列从第一个 : 开始第一个 - 结束
    docker-ce.x86_64  3:18.09.1-3.el7                     docker-ce-stable
    docker-ce.x86_64  3:18.09.0-3.el7                     docker-ce-stable
    docker-ce.x86_64  18.06.1.ce-3.el7                    docker-ce-stable
    docker-ce.x86_64  18.06.0.ce-3.el7                    docker-ce-stable
    

    上面的可用版本分别是:18.09.1、18.09.0、18.06.1.ce、18.06.0.ce

    # 指定版本安装
    yum install docker-ce-18.09.1 docker-ce-cli containerd.io
    

常用命令

系统级别

  1. systemctl start docker 启动 docker
  2. systemctl enable docker 开机启动 docker

镜像

  1. docker search nginx 搜索镜像。OFFICAL:是否是官方发布的镜像,OK 表示是,为空就不是
  2. docker pull nginx 拉取镜像
    1. 不加版本就是拉取最新的
    2. 如果要指定版本,docker search 就不合适了,去 docker hub 去找
    3. docker pull nginx:1.26.0 拉取指定版本镜像,这个命令 docker hub 也有
  3. docker images 已存在的镜像。这是简写,全写是 docker image ls
  4. docker rmi 删除镜像。可以跟【镜像名:版本】或【镜像ID】

容器

  1. docker ps 当前运行中的容器

    1. 不带参数就是查看运行中的容器
    2. docker ps -a 查看所有容器,包括没运行的
    3. docker -ps -aq 查看所有容器,只显示容器id
  2. docker run 镜像id或镜像名称 运行容器。为指定镜像运行一个容器

    1. docker run nginx 创建并启动一个 nginx 的容器,如果不跟版本号就是 latest,如果当前没有这个镜像还会先拉取再运行

    2. docker run nginx:1.26.0 创建并启动一个 nginx 的容器,版本是 1.26.0

    3. run 还能带一些参数,比如后台启动、自定义名称、端口映射、目录挂载等

      # -d 后台启动
      # --name 自定义容器名称
      # -p 端口映射(8080:80 表示宿主机 8080 映射到 容器 80)
      # -v 目录挂载(后面说)
      docker run -d --name mynginx -p 8080:80 nginx
      
  3. docker stop 容器id或容器名称 停止容器

  4. docker start 容器id或容器名称 启动容器。docker restart xxx 重启容器,不管是否运行都重启

  5. docker logs 容器id或容器名称 查看容器日志

  6. docker stats 容器id或容器名称 查看容器运行状态。可以看网络、CPU、内存等资源使用情况

  7. docker exec -it 容器id或容器名称 bash 进入容器

  8. docker ps rm 容器id或容器名称 删除容器。要先停止才能删除,运行中的要强制删除 docker ps rm -f 容器id

目录挂载

  1. 容器被删除,里面的数据就没了
  2. 因为容器为了最小化资源使用,里面很多命令都没有,所以修改数据不方便

运行容器的时候指定参数 -v 完成目录的挂载,同 -p 一只,也是先先宿主机目录在写容器目录,比如下面的命令:

docker run -d -v /app/nginx/html:/usr/share/nginx/html -p 8080:80 nginx
  1. nginx 的欢迎页(首页)是 /usr/share/nginx/html/index.html,上面的命令会让 nginx 到宿主机的 /app/nginx/html 下找 index.html
  2. 如果宿主机没有挂载的目录会自动创建(但是不会创建文件)

卷挂载

目录挂载会自动创建目录,但是不会创建文件,卷挂载就是用来解决这个问题的

# 运行一个容器,使用卷挂载
docker run -d -v nghtml:/usr/share/nginx/html -p 8090:80 nginx
  1. nghtml 是卷名,自定义的,随便取什么名都行
  2. 冒号后面是容器目录

nghtml 位置在哪?docker 用宿主机的专门一个位置存放所有卷挂载的文件: /var/lib/docker/volumes

  1. docker volume ls 查看所有的卷
  2. docker volume inspect 卷名 查看卷的详情,Mountpoint 就是这个卷的位置

标签:容器,基础,ce,nginx,yum,镜像,Docker,docker
From: https://www.cnblogs.com/cryus/p/18296007

相关文章

  • Linux系统基础学习
    系统目录结构目录结构登录系统之后输入ls命令查看系统目录系统常用的目录/bin存放着最常用的命令,包括用户和系统管理员都会使用的命令。/boot存放启动linux的核心文件,包括内核文件、引导文件、镜像文件/dev存放着Linux系统中所有的设备文件,如硬盘、CD-ROM等/home......
  • 高速接口:GT基础(一)
    参考:https://blog.csdn.net/m0_56222647/article/details/136730026一、GT是什么?参考链接:https://zhuanlan.zhihu.com/p/46052855它是集成在FPGA芯片内部的固定电路,因此我们只需要关心该固定电路与FPGA的逻辑部分接口时序即可;它是串行收发器,发送出去只有1bit数据,而接收端也......
  • 零基础STM32单片机编程入门(十三) 红外避障传感器模块实战含源码
    文章目录一.概要二.红外避障模块主要参数1.模块引脚定义2.模块特点3.模块原理图三.STM32单片机红外避障模块检测实验四.CubeMX工程源代码下载五.小结一.概要红外避障模块具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测遇到障碍物时,红外线反射回来......
  • python urllib 基础 5
    ajax的post请求importurllib.requestimporturllib.parse#url='https://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=cname'##headers={#'user-agent':"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTM......
  • Linux 基础指令
    来自......
  • 「AI绘画Stable Diffusion 零基础入门 」AI 绘画原理与工具介绍,万字解析AI绘画的使用
    大家好,我是程序员晓晓AI绘画原理想要入门AI绘画,首先需要了解它的原理是什么样的。其实很早就已经有人基于深度学习模型展开了对图像生成的研究了,但在那时,生成的图像分辨率和内容都非常抽象。直到近两年,AI产出的图像内容的质量变高、而且有一定的艺术价值,这时它才算......
  • C#+OpenCV基础(十七)_计算图片相似度
    1、SSIM算法计算相似度///<summary>///两张图片的相似度(SSIM算法)///</summary>///<paramname="mat1">图片1</param>///<paramname="mat2">图片2</param>///<returns></returns>publicstaticScalarCompareD......
  • C#+OpenCV基础(十八)_模版匹配
    1、MatchTemplate匹配图片///<summary>///匹配图片(Cv2.MatchTemplate)///</summary>///<paramname="matSrc">图片</param>///<paramname="matTo">特征图片</param>///<paramname="outMat">结果图片<......
  • Docker 因端口映射不一致出现的问题
    问题描述因为服务器原先已经安装了nginx(非容器安装),并且占用80端口;而我方习惯使用容器进行安装应用,故用安装了一个容器ngixn;docker-compose.ymlversion:'3'services:nginx:restart:alwayscontainer_name:nginximage:nginxports:-81:80......
  • Kubernetes高可用集群二进制离线部署(Runtime Docker)
    Kubernetes高可用集群二进制部署(RuntimeDocker)Kubernetes(简称为:k8s)是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了资源调度、部署管理、服务......