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

    Docker容器学习笔记

    1.概念

    1.1镜像:image

    镜像是一个只读的模版,镜像是可以用来制作Docker容器,一个镜像可以制作多个容器。镜像可以比作Java的类,一个类可以有多个实例对象

    1.2容器:

    容器是镜像创建的运行实例,比作为Java类的实例对象。可以把容器看做是一个简易版的Linux环境,只包括root权限,进程空间,用户和网络空间。

    1.3仓库

    仓库是集中存放镜像文件的场所,每个不同的镜像都有不同的tag标签

    2.Docker安装步骤

    2.1.CentOS 7Linux系统安装 Docker

    Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

    ​ 1)通过 uname -r 命令查看你当前的内核版本

    2.2.安装之前需要删除旧版本的docker

    		$ sudo yum remove docker 
                  docker-client 
                  docker-client-latest 
                  docker-common 
                  docker-latest 
                  docker-latest-logrotate 
                  docker-logrotate 
                  docker-selinux 
                  docker-engine-selinux 
                  docker-engine
    

    2.3.安装一些必要的系统工具

    ​ 1)sudo yum install -y yum-utils device-mapper-persistent-data lvm2

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

    2.4安装Docker

    sudo yum -y install docker-ce

    2.5.启动 Docker 后台服务

    sudo systemctl start docker

    2.6.测试运行 hello-world

    docker run hello-world

    Xnip2020-03-08_16-02-55

    2.7查看docker安装镜像

    docker images

    2.8.docker默认安装目录

    /var/lib/docker

    3.Docker 镜像加速器阿里云镜像仓库配置

    阿里云地址

    1.Ubuntu配置

    配置镜像加速器
    针对Docker客户端版本大于 1.10.0 的用户
    
    您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://0engwp1a.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

    2.Mac配置

    1. 安装/升级Docker客户端
    对于10.10.3以下的用户 推荐使用Docker Toolbox
    
    Mac安装文件:http://mirrors.aliyun.com/docker-toolbox/mac/docker-toolbox/
    
    对于10.10.3以上的用户 推荐使用Docker for Mac
    
    Mac安装文件:http://mirrors.aliyun.com/docker-toolbox/mac/docker-for-mac/
    
    2. 配置镜像加速器
    针对安装了Docker Toolbox的用户,您可以参考以下配置步骤:
    创建一台安装有Docker环境的Linux虚拟机,指定机器名称为default,同时配置Docker加速器地址。
    
    docker-machine create --engine-registry-mirror=https://0engwp1a.mirror.aliyuncs.com -d virtualbox default
    查看机器的环境配置,并配置到本地,并通过Docker客户端访问Docker服务。
    
    docker-machine env default
    eval "$(docker-machine env default)"
    docker info
    针对安装了Docker for Mac的用户,您可以参考以下配置步骤:
    在任务栏点击 Docker Desktop 应用图标 -> Perferences,在左侧导航菜单选择 Docker Engine,在右侧输入栏编辑 json 文件。将
    
    https://0engwp1a.mirror.aliyuncs.com加到"registry-mirrors"的数组里,点击 Apply & Restart按钮,等待Docker重启并应用配置的镜像加速器。
    

    3.CentOS

    1. 安装/升级Docker客户端
    推荐安装1.10.0以上版本的Docker客户端,参考文档 docker-ce
    
    2. 配置镜像加速器
    针对Docker客户端版本大于 1.10.0 的用户
    
    您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://wpjk4gpx.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

    4.Docker工作原理

    ​ Docker 大鲸鱼运行在宿主机上,镜像在Docker环境中,容器实例来自镜像模版中。

    5.Docker使用命令

    5.1.帮助命令

    docker info:查看基础信息 
    docker help:查看docker所以可以使用的命令说明
    docker version:查看docker版本信息
    
    

    5.2.镜像命令

    docker images:列出查看本地所以镜像模版
    		-a:查询所以本地镜像且包含中间层(如docker images -a)
    		-q:查询所以镜像ID
    docker search xxx:查看远程仓库对应镜像的版本信息
    		-s:如docker search -s 100 nginx 查询starts>=100的nginx镜像模版
    docker pull xxx:[tag]:远程仓库拉取xxx标签为tag镜像模版,tag可以省略,表示拉去最新版本的镜像,如docker pull nginx
    docker rmi -f xxx:删除xxx镜像模版, -f为强制删除,可以省略,
    		删除多个镜像模版:如docker rmi -f nginx tomcat
    		全部删除镜像模版:如docker rmi -f $(docker images -qa) 使用组合命令进行全部删除
    
    

    5.3.容器命令

    docker run xxx:启动指定的镜像,如本地docker有该进行则进行运行,没有则进行远程拉取
    		-t:启动交互式容器
    		-i:使用伪终端的方式
    		-d:启动守护容器,如docker run -d -p 8888:8080 tomcat
    		-p:端口:如 docker run -it -p 8888(向外暴露的端口):8080(tomcat服务端口) tomcat
    		--name:容器别名
    		如:docker run -it --name nginx001(容器别名) nginx(运行的镜像名称)
    		
    exit:退出容器
    docker ps:查看docker当前运行容器信息
    		-l:显示上一个容器运行的信息,如docker ps -l
    		-a:显示docker全部容器运行的信息,如dcoker ps -a
    		-n 3:显示docker上3个运行的容器信息,如docker ps -n 3
    		-q:只显示容器编号,如docker ps -q 显示当前运行容器编号或者docker ps -lq显示上一个运行的容器编号
    docker start xxx(容器编码/名称):启动容器
    docker restart xxx(容器编码/名称):重启容器
    docker stop xxx(容器编码/名称):停止容器
    docker kill xxx(容器编码/名称):强制停止容器
    docker rm xxx(容器编码/名称):删除已停止的容器
    		-f:强制删除容器, 删除全部容器:docker rm -f ${docker ps -qa}
    docker logs -f -t --tail 容器ID:查看docker日志, -t是时间,-f是最新日志da打印 --tail 显示最后多少条数据,如docker logs -f -t --tail 3 容器ID 查看最后三行日志
    		
    docker inspect 容器ID:查看容器内部所以细节内容
    docker attach 容器ID:重新进入指定的开启容器终端
    docker exec: 容器正在运行以交互的方式进入容器 docker exec -it zookeeper_zoo1_1 /bin/bash
    docker cp 容器ID:  容器copy路径 copy到宿主机的路径:如docker cp xxx: /usr/xxx /usr/local
    

    6.Docker 镜像原理

    6.1镜像是什么?

    ​ 镜像是一种轻量级可执行独立的软件包,里面包含代码,配置文件,环境变量,以及代码运行的环境等。镜像是一层套一层的嵌套。

    docker commit 作用提交容器副本使之成为一个新的镜像
    docker commit -m="提交的描述" -a"作者" 容器ID 创建目标镜像名称:[标签]
    

    7.docker上传阿里镜像远程仓库

    1. 登录阿里云Docker Registry
    $ sudo docker login --username=18086456705 registry.cn-hangzhou.aliyuncs.com
    用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。
    
    您可以在访问凭证页面修改凭证密码。
    
    2. 从Registry中拉取镜像
    $ sudo docker pull registry.cn-hangzhou.aliyuncs.com/xll_2020/xll_2020_demo_j:[镜像版本号]
    3. 将镜像推送到Registry
    $ sudo docker login --username=18086456705 registry.cn-hangzhou.aliyuncs.com
    $ sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/xll_2020/xll_2020_demo_j:[镜像版本号]
    $ sudo docker push registry.cn-hangzhou.aliyuncs.com/xll_2020/xll_2020_demo_j:[镜像版本号]
    请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。
    
    4. 选择合适的镜像仓库地址
    从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。
    
    如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-hangzhou.aliyuncs.com 作为Registry的域名登录,并作为镜像命名空间前缀。
    5. 示例
    使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。
    
    $ sudo docker images
    REPOSITORY                                                         TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
    registry.aliyuncs.com/acs/agent                                    0.7-dfb6816         37bb9c63c8b2        7 days ago          37.89 MB
    $ sudo docker tag 37bb9c63c8b2 registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816
    使用"docker images"命令找到镜像,将该镜像名称中的域名部分变更为Registry专有网络地址。
    
    $ sudo docker push registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816
    
    美梦成真,变为事实。
  • 相关阅读:
    从零开始编写网络游戏 --- 基础篇
    分治算法
    arm-linux-gcc-4.5.1安装方法
    linux双显卡解决方案
    Mac快捷键整理(随时更新)
    MacBook连接蓝牙鼠标、蓝牙键盘失败的解决方案
    IDEA for Mac 快捷键整理
    禁用win10笔记本自带键盘
    写给自己的博客初心:博客选择,为什么写博客?怎么写?写什么?
    Hexo框架的微博搭建
  • 原文地址:https://www.cnblogs.com/x-ll123/p/14478874.html
Copyright © 2011-2022 走看看