zoukankan      html  css  js  c++  java
  • Docker入门

    1. Docker简介

    • Docker的目标“Build, Ship and Run Any App,Anywhere”。通过对应用的封装(Packaging)、分发(Distribution)、部署(Deployment)、运行(Runtime)生命周期进行管理,达到应用组件级别的“一次封装,到处运行”。

    • Docker的优势:

      • 更快速的交付和部署

      • 更高效的资源利用

      • 更轻松的迁移和扩展

      • 更简单的更新管理

    • Docker核心概念

      • Docker镜像:类似于应用程序。

      • Docker容器:类似于进程。是镜像创建的运行实例,彼此相互隔离。

      • Docker仓库:存放镜像的场所。

    2. Docker架构

    • Docker_Host:

      安装Docker的主机

    • Docker Daemon:

      运行在Docker主机上的Docker后台进程

    • Client:

      操作Docker主机的客户端(命令行、UI等)

    • Registry:

      镜像仓库

    • Images:

      镜像,带环境打包好的程序,可以直接启动运行

    • Containers:

      容器,由镜像启动起来正在运行中的程序

    3. Docker的安装

    3.1 Linux安装

    ​ 官方文档中各种常见的Linux版本都有详细的安装指导。官方指南

    3.1.1 下面以CentOS为例,主要下面几步:

    ​ 1. 卸载旧版本的Docker

    sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine
    

    ​ 2. 配置yum源

    sudo yum install -y yum-utils
    
    sudo yum-config-manager \
        --add-repo \
        https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#这里修改成了阿里云的
    

    ​ 3. 安装Docker

    sudo yum install docker-ce docker-ce-cli containerd.io
    

    ​ 4. 启动Docker并设置开机开启

    sudo systemctl start docker  #启动Docker
    sudo systemctl enable docker  #设置开机启动
    

    也可以直接看阿里云的文档就可以。阿里云Docker安装,。

    3.2 Mac和Windows安装

    Mac(分别有M1和Intel版本)和Windows现在官方已经有图形化的桌面版提供Docker Desktop

    我本地安装Mac版都是一直下一步,直到完成。

    安装完后同样需要修改镜像仓库地址。

    {
      "registry-mirrors": [
        "https://hub-mirror.c.163.com"
      ],
      "debug": true,
      "experimental": false
    }
    

    4. Docker操作

    图片来源自尚硅谷Docker资料

    4.1 下载镜像

    ​ 登陆Docker官网进行搜索,下载安装。

    以下载nginx镜像为例
    

    • 图中1标注的位置输入想要搜索的镜像名进行搜索
    • 图中2标注的地方可以直接在剪切板上复制最新的nginx镜像
    • 也可以在图中3标注的位置查看nginx其他版本的镜像
    • 图中4标注的地方下载其他版本的镜像(latest也就是最新版本,下面还有其他版本,由于截图原因没展现出来)
    docker pull nginx  #下载最新版
    docker pull nginx:latest   #下载最新版
    镜像名:版本名(标签)
    
    docker pull nginx:1.20.1
    
    docker pull redis  #下载最新
    docker pull redis:6.2.4
    
    ## 下载来的镜像都在本地
    docker images  #查看所有本地镜像
    
    
    docker rmi 镜像名:版本号/镜像id
    

    4.2 启动容器

    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    【docker run  设置项   镜像名  】 镜像启动运行的命令(镜像里面默认有的,一般不会写)
    
    # -d:后台运行
    # --restart=always: 开机自启
    docker run --name=mynginx   -d  --restart=always -p  88:80   nginx
    
    #  -p 宿主机端口:容器端口				端口映射
    # -v 宿主机目录:容器目录        挂载目录到宿主机
    docker run --name=mynginx   \
    -d  --restart=always \
    -p  88:80 -v /data/html:/usr/share/nginx/html:ro  \
    nginx
    
    docker ps  # 查看正在运行的容器
    
    docker ps -a   # 查看所有
    
    docker rm  容器id/名字   # 删除停止的容器
    docker rm -f mynginx   #强制删除正在运行中的
    
    
    docker stop 容器id/名字  #停止容器
    
    docker start 容器id/名字   #再次启动
    
    
    docker update 容器id/名字 --restart=always  #应用开机自启
    

    4.3 其他常用命令

    
    # -i :即使没有附加也保持STDIN 打开
    # -t :分配一个伪终端
    docker exec -it 容器id  /bin/bash    # 进入容器内部的系统,修改容器内容
    
    #查看本地镜像
    docker images
    
    docker save -o abc.tar mynginx:v1.0			# 将镜像保存成压缩包
    
    
    docker load -i abc.tar			# 加载这个镜像
    
    #把容器指定位置的文件到宿主机 
    docker cp 容器id:/etc/nginx/nginx.conf  /data/conf/nginx.conf
    #将宿主机文件复制到容器里面
    docker cp  /data/conf/nginx.conf  容器id:/etc/nginx/nginx.conf
    
    
    
    docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
    # -a :提交的镜像作者;
    # -c :使用Dockerfile指令来创建镜像;
    # -m :提交时的说明文字;
    # -p :在commit时,将容器暂停。
    docker commit -a "wbo112"  -m "message" 容器id newnginx:v1.0
    

    4.4 推送远程仓库

    docker tag local-image:tagname new-repo:tagname
    docker push new-repo:tagname
    # 把旧镜像的名字,改成仓库要求的新版名字
    docker tag nginx:latest  mynginx:v1.0
    
    # 登录到docker hub
    docker login       #如果已经登陆了Docker Desktop,这里就不需要登陆了
    
    
    docker logout     #推送完成镜像后退出
    
    # 推送
    docker push wbo112/mynginx:v1.0     #推送的镜像名字一般是 注册用户名/镜像名:版本号,这种格式
    
    
    # 下载镜像
    docker pull wbo112/mynginx:v1.0
    

    上传完之后,登陆docker就能看到


    如果是Mac或者Windows的话,很多操作也可以通过在Docker Desktop图形化界面来完成,这里就不一一列举出来了。


    参考自尚硅谷docker资料

  • 相关阅读:
    WEB 3D SVG CAD 向量 几个实施(转)
    Dos.Common
    dos.orm
    php程序员招聘
    python之禅
    Electron
    MongoDB主从复制
    OSG开发概览
    从1-100中隔5个数去掉一个数,最后去掉的哪个数(如果数过一遍了从前端接着开始)?
    django/python日志logging 的配置以及处理
  • 原文地址:https://www.cnblogs.com/wbo112/p/15600734.html
Copyright © 2011-2022 走看看