zoukankan      html  css  js  c++  java
  • Docker学习笔记

    视频是跟看B站 2020 Docker最新超详细版教程通俗易懂

     前言:

    1.为什么要使用Docker?

    --解决环境不一致的问题

    --解决多用户操作系统的相互影响问题

    --解决运维成本过高问题

    --解决安装软件耗费时间成本过高的问题

    2.Docker思想

    --集装箱(共享化)

    --标准化(传输标准化,命令标准化)

    --隔离性(在linux的内核中,不会影响其他位置)

    3.形象理解

    注册中心----码头,堆放各种集装箱

    镜像----集装箱

    容器----运行起来的镜像

    Docker基本操作

    1.安装

    --a.下载安装docker的依赖环境

    yum -y install yum-utils device-mapper-persistent-data lvm2

    --b.设置下载docker的镜像源(如果不设置的话默认是从docker的官网下载,官方服务器在国外所以下载很慢,这里是选择去阿里云下载镜像了)

    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    --c.安装docker

    yum makacache fast           (安装缓存)

    yum -y install docker-ce    (安装服务)

    --d.启动docker

    systemctl start docker

    (设置开机自启动:systemctl enable docker)

    --e.测试是否安装成功

    docker run hello-world

    下方出现“This massage shows that your installation appears to be working correctly”说明安装成功

    2.Docker的中央仓库

    --1.docker官方的中央仓库:hub.docker.com 镜像最全,下载速度较慢

    --2.国内的镜像网站:网易蜂巢(c.163.com),daoCloud(hub.daocloud.com)(推荐),阿里云之类的

    --3.公司内部会采用私服的方式拉去镜像,通过局域网下载速度更快,需要添加配置才可以生效:

      需要找到/etc/docker/daemon.json 这个文件,如果没有的话需要自己添加上:

        {

        "registry-mirrors":["https://registry.docker-cn.com(就是一个国内的镜像网站)"],

        "insecure-registries":["ip:公司内部的port号"]

        }

       再重启两个服务:

      systemctl daemon-reload

      systemctl restart docker

    3.镜像的操作

    ----a.拉取镜像到本地

    docker pull 镜像名称[:tag]           #中括号中的是标签内容,表明要下载的版本号,如果没有这个标签就下载默认的版本

    举例如下:(拉取tomcat的镜像)

     docker pull daocloud.io/library/tomcat:8.5.15-jre8

    ----b.查看全部本地的镜像

    docker images

    ----c.删除本地镜像

    docker rmi 镜像的唯一标识(id)

    ----d.镜像的导入导出(由于各种原因无法拉下来的镜像,可以先打包通过U盘或网盘或其他传输方式获得到本地,导入自己的linux操作系统中)

    将本地的镜像打包导出: docker save -o 导出的路径 给打包带image命名 镜像的id

    加载本地的镜像:docker load -i 目标image名   (新加载的镜像是没有repository名和tag名的,需要重新命名)

    ----c.1.重新命名:docker tag 镜像id 新镜像名称:版本

    4.容器的操作

     1.运行容器

    docker run 镜像的标识 镜像的名称[:tag]

    常用的参数  [-d]  [-p 宿主机端口:容器端口]  [--name 容器名称,镜像的标识|镜像名称[:tag]]

    -d:代表后台运行容器,如果不加,会占满整个界面来运行当前启动的容器,如果强制停止去执行其他操作,那么容器也会跟着停止

    -p 宿主机端口:容器端口 :为了映射当前linux的端口和容器的端口【例如:要启动tomcat,tomcat在容器内部占用的是8080端口,如果想访问,通过windows找到linux,再由linux找到容器,这样就需要把这两者的端口映射一下,才能在window下访问到容器内部的信息】

    --name 容器名称 :指定容器的名称

    假设现在我linux的端口是8081,8080是tomcat容器的端口 那么我可以运行

    docker run -d -p 8081:8080 --name tomcat b8fexxx(就是image id)

    启动这个容器,可以尝试在windows上浏览器访问192.168.xxx.8081 ,就可以看到在容器内部运行的tomcat首页

    2.查看正在运行的容器

    docker ps -a或-q

    -a:查看全部的容器,包括没有运行的,如果不加就只能看到正在运行的容器

    -q:只查看容器的标识,不查看其他信息

    3.查看容器的日志

    docker logs -f 容器id

    -f :可以滚动查看日志的最后几行

    4.进入到容器内部

    docker exec -it 容器id bash

    其实相当于docker为tomcat的运行在linux内核中单独开辟了一块空间,称为容器,容器内部有独立的操作系统,上述的命令就可以进入到这个操作系统中(容器中),ls可查看到系统中都包含哪些内容,如bin,lib,conf等还可以cd到其中的如bin文件夹内,看到startup.sh和shutdown.sh这些文件,但一般不推荐直接在容器中操作容器

    5.删除容器(删除容器之前一定要先停止容器)

    停止:

    docker stop 容器id

    docker stop $(docker ps -qa)       停止全部容器

    删除:

    docker rm 镜像id

    或者docker rm $(docker ps -qa)   删除全部容器

    6.启动容器

    docker start 容器id

    三.Docker的应用

    待补充

  • 相关阅读:
    Java 浮点数精度丢失
    旧梦。
    luogu6584 重拳出击
    luogu1758 [NOI2009]管道取珠
    luogu4298 [CTSC2008]祭祀
    bzoj3569 DZY Loves Chinese II
    AGC006C Rabbit Exercise
    bzoj1115 [POI2009]石子游戏Kam
    luogu5675 [GZOI2017]取石子游戏
    bzoj3143 [HNOI2013]游走
  • 原文地址:https://www.cnblogs.com/RuiRuia/p/13273159.html
Copyright © 2011-2022 走看看