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

    Docker简介

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。

    Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

    容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

    Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。

    Docker官网:https://www.docker.com/

    Centos7安装Docker

    Docker1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE

    社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。

    社区版按照stableedge两种方式发布,每个季度更新stable版本,如17.0617.09;每个月份更新edge版本,如17.0917.10

    我们平时用社区版就足够了。所以我们安装社区版;

    我们主要参考:https://docs.docker.com/install/linux/docker-ce/centos/  来安装;

    我们切换到root用户

     

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

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

     

     $ uname -r

    2、使用 root 权限登录 Centos。确保 yum 包更新到最新。

    $ yum update

    3、卸载旧版本(如果安装过旧版本的话)

    $ yum remove docker  docker-common docker-selinux docker-engine 

    4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

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

    5、设置yum

    $ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

    6,安装最新版本的Docker

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

    如果出现下面问题

    遇到这种情况有两种做法:

    1、没网,试着:ping www.baidu.com

    如果显示没有连接的话,就说明没网,也就无法使用yum 命令。

     

    2ping通了的话,还是是用不了yum命令,说明是yum镜像没有了,那么就得下载一个来更新。

    在安装完CentOS后一般需要修改yum源,才能够在安装更新rpm包时获得比较理想的速度。国内比较快的有163源、sohu源。这里以163源为例子。

     

    A cd /etc/yum.repos.d

    B mv CentOS-Base.repo CentOS-Base.repo.backup

    Cwget http://mirrors.163.com/.help/CentOS6-Base-163.repo

    Dmv CentOS6-Base-163.repo CentOS-Base.repo

    Eyum clean all

     

    最后在使用yum 就可以了。

     

    7,启动Docker并设置开机启动

    $ systemctl start docker
    $ systemctl enable docker

    8,验证Docker

    $ docker version

    出现这个说明安装ok

    阿里云镜像仓库

     

    Docker默认远程仓库是https://hub.docker.com/

    比如我们下载一个大点的东西,龟速

    由于是国外主机,类似Maven仓库,慢得一腿,经常延迟,破损;

    所以我们一般都是配置国内镜像,比如阿里云,网易云等;推荐阿里云,稳定点;

    配置步骤如下:

    1,登录进入阿里云镜像服务中心,获取镜像地址

    进入阿里云容器镜像服务地址:

    https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

     

    使用你的淘宝账号密码登录

     

    这里我们获取镜像地址;

    2,在/etc/docker目录下找到在daemon.json文件(没有就新建),将下面内容写入

    {

     "registry-mirrors": ["https://xxxxxxx.mirror.aliyuncs.com"]

    }

    3,重启daemon

    systemctl daemon-reload

    4,重启docker服务

     

    systemctl restart docker

    Docker基本命令

    启动Docker

    systemctl start docker

    停止Docker

    systemctl stop docker

    重启Docker

    systemctl restart docker

    开机启动Docker

    systemctl enable docker

    查看Docker概要信息

    docker info

     查看Docker帮助文档

    docker --help

    查看Docker版本信息

    docker version

    Docker镜像常用命令

    1docker images 列出本机所有镜像

    列出本机所有镜像

     

    REPOSITORY

    镜像的仓库源

    TAG

    镜像的标签(版本)同一个仓库有多个TAG的镜像,多个版本;我们用REPOSITORY:TAG来定义不同的镜像;

    IMAGE ID

    镜像ID,镜像的唯一标识

    CREATE

    镜像创建时间

    SIZE

    镜像大小

    2docker search 搜索镜像

    https://hub.docker.com/ 这里的搜索效果一样;

    OPTIONS可选参数:

    --no-trunc

    显示完整的镜像描述

    -s

    列出收藏数不小于指定值的镜像

    --automated

    只列出Docker Hub自动构建类型的镜像

     3docker pull 下载镜像

    docker pull 镜像名称:[TAG]

    注意:不加TAG,默认下载最新版本latest

     

    4docker rmi 删除镜像

    1,删除单个:docker rmi 镜像名称:[TAG] 

    如果不写TAG,默认删除最新版本latest

    有镜像生成的容器再运行时候,会报错,删除失败;

    我们需要加 -f 强制删除

    2,删除多个:docker rmi -f 镜像名称1:[TAG] 镜像名称2:[TAG]

    中间空格隔开

    3,删除全部:docker rmi -f $(docker images -qa)

    Docker 容器常用命令

    1Docker创建并启动容器

    启动普通容器: docker run --name 别名 镜像ID  

     启动交互式容器:  docker run -it --name 别名 镜像ID   来运行一个容器,取别名,交互模式运行,以及分配一个伪终端,并且进入伪终端;

    注意: 

    1、启动普通容器的方式基本不用,没有伪终端,没有太大价值;

    2、启动交互式容器的方式,容器一创建完毕,立即进入伪终端

     

     守护式方式创建并启动容器: docker run -di --name 别名 镜像ID 

    it的启动方式就是会直接进入你开启的容器的路径,而di不会

    2、Docker列出容器

    docker ps [OPTIONS]

    OPTIONS说明:

    -a :显示所有的容器,包括未运行的。

    -f :根据条件过滤显示的内容。

    --format :指定返回值的模板文件。

    -l :显示最近创建的容器。

    -n :列出最近创建的n个容器。

    --no-trunc :不截断输出。

    -q :静默模式,只显示容器编号。

     

    -s :显示总的文件大小。

    docker ps 查看正在运行的容器

    docker ps -a 查看所有容器

    docker ps -n 2  显示最近创建的2个容器

     

    docker ps -f status=exited 查看停止的容器

     

    3、Docker退出容器

    exit 容器停止退出

     

    ctrl+P+Q 容器不停止退出

     

    4、Docker进入容器

     adocker attach 容器ID or 容器名 

     

    5、Docker启动容器 

     

    docker start 容器ID or 容器名

     

    6、Docker重启容器

     

    docker restart 容器ID or 容器名

     

    7、Docker停止容器

     

    docker stop 容器ID or 容器名

     

    8、Docker删除容器

    docker rm 容器ID 

     

    9、Docker器日志

    直接进入这个目录:/var/lib/docker/containers/

     

     

     

    Docker官网:https://www.docker.com/

  • 相关阅读:
    Ubuntu 16.04下SecureCRT无法输入中文的解决思路
    Ubuntu 16.04安装SecureCRT替代XShell
    SVN提交时报错:Commit blocked by pre-commit hook (exit code 1) with no output.
    Spring Cloud ZooKeeper集成Feign的坑2,服务调用了一次后第二次调用就变成了500,错误:Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is com.n
    Spring Cloud ZooKeeper集成Feign的坑1,错误:Consider defining a bean of type 'org.springframework.web.client.RestTemplate' in your configuration.
    Ubuntu 16.04 GNOME下解决Sublime Text3中文输入(ibus)(转)
    Spring Cloud简介/版本选择/ZooKeeper例子搭建简单说明
    Maven奇怪的问题,当找不到Maven输出的提示错误时可以试下这个方法
    Ubuntu 16.04系统启动时卡在:(initramfs)
    Eclipse创建Maven多模块工程
  • 原文地址:https://www.cnblogs.com/chenjiahao9527/p/11953624.html
Copyright © 2011-2022 走看看