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

    一、Docker 基本操作 (环境:Centos7)

    1 systemctl stop firewalld
    2 systemctl disable firewalld
    3 sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
    4 setenforce 0
    5 yum -y install docker
    6 systemctl  start docker.service
    7 systemctl  enable docker.service

    如果是CentOS 6在base源中无docker,需要增加yum源

    (1)升级版本内核(可选项,centos6默认内核为2.6,centos7默认内核为3.10)查看命令

    cat  /etc/redhat-release
    uname -a
    uname  -r

    (2)Centos  6内核升级:yum安装带aufs模块的3.10内核

    cd /etc/yum.repos.d
    wget http://www.hop5.in/yum/el6/hop5.repo
    yum -y install kernel-ml-aufs kernel-ml-aufs-devel

    修改grub的主配置文件/etc/grub.conf,设置default=0,表示第一个title下的内容为默认启动的kernel(一般新安装的内核在第一个位置),重启生效。

    yum -y install http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm
    yum -y install docker-io
    service docker start
    chkconfig –add docker chkconfig docker on
    或:
    rpm  -ivh  http://dl.fedoraproject.org/pub/epel/6/x86_64/Packages/d/docker-io-1.7.1-2.el6.x86_64.rpm

    二、Docker 基本命令

    docker version
    docker info  查看详细信息
    docker run hello-world 测试
    
    1、查找、下载镜像
    docker search centos                查找CentOS
    docker search -s 100 ubuntu         查找star星数在100以上的Ubuntu版本
    docker pull centos                  拉取(下载)镜像
    从daocloud 下载镜像:
    dao pull mysql 
    docker pull daocloud.io/library/centos
    
    2、查询已下载镜像
    docker image list                  查询镜像 = docker images
    docker images -q                   查询镜像ID
    
    3、删除镜像
    docker rmi daocloud.io/library/mysql --force       强制删除镜像(镜像被容器使用,但容器没有运行,可使用--force,也可rmi -f)
    docker rmi ed9c93747fe1Deleted                     ID号方式删除镜像
    docker rmi $(docker images -q)                     删除所有镜像
    docker history daocloud.io/ubuntu 显示镜像的制作历史
    
    4、创建、断开容器
    docker run -it centos/ID /bin/bash                  用centos镜像创建并运行一个容器 ( -i 捕获标准输入输出; -t 分配一个终端或控制台)
    docker run -it -d centos/ID /bin/bash               创建并直接运行到后台 
    exit 断开并关闭当前容器(Ctrl + D)
    Ctrl + P + Q 断开不关闭
    docker create -it daocloud.io/library/centos:5 /bin/bash  创建但不启用
    
    5、查询容器
    docker ps                                       查询在运行的容器
    docker ps -a                                    查看所有容器
    docker ps -a -q                                 查询所有容器的ID
    docker ps -l                                    列出最近一次启动的容器
    docker inspect d95a220a4(ID)                    查看容器信息
    
    6、连接使用容器 
    docker attach + ID                              连接已开启的容器
    docker exec -it name/ID /bin/bash               连接后台型的容器
    docker start name/ID                            启动容器
    docker stop name/ID                             关闭容器
    docker kill $(docker ps -a -q)                  强制关闭所有容器
    docker restart name/ID                          重启容器
    
    7、删除容器
    docker rm + ID号                                删除容器
    docker rm –f + ID号                             强行删除正在运行的容器
    docker rm `docker ps -qf status=exited`         删除所有状态为exited的容器 
    
    8、拷贝
    docker cp mysql:/usr/local/bin/docker-entrypoint.sh /root             拷贝容器中文件到宿主机
    docker cp /root/docker-entrypoint.sh mysql:/usr/local/bin/            宿主机文件拷贝至容器中
    
    9、其他
    docker logs + ID号                                                    将容器执行过的命令打印出来
    docker top birdben/ubuntu:v1                                          显示一个运行的容器里面的进程信息
    docker diff elated_lovelace                                           能够查看出容器的变化文件(包括创建、删除、内容变化等)
    A /haha 
    A /c.txt 注:反馈中:C代表文件内容变化了;A代表文件被创建、删除
    C /etc/passwd 
    docker events                                                          实时输出Docker服务器端的事件(包括容器的创建,启动,关闭等)
    
    10、容器卷
    注:新卷只能在容器创建过程当中挂载
    docker run -it --name="voltest" -v /tmp:/test daocloud.io/library/centos:5 /bin/bash 共享目录下的内容(若删除容器中目录下内容,宿主机的原目录下文件也会被删除)
    注: /tmp 宿主机的路径; /test 容器中的路径
    docker run -it --volumes-from bc4181 daocloud.io/library/centos:5 /bin/bash 共享其他容器的卷(新创建容器,使用ID为bc4181的容器卷(挂载目录与原容器的挂载目录相同))
    
    11、查询容器IP
    docker inspect <container id>

    docker inspect --format '{{ .NetworkSettings.IPAddress }}' <container-ID>

    docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id

    、docker-ce 最新版安装

    本次测试环境Centos7.6 ,

    方法一:

    curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

    方法二:

    yum install -y yum-utils device-mapper-persistent-data lvm2
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    vim /etc/yum.repos.d/docker-ce.repo

    方法三:

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

    修改配置文件:将enabled=0,改为enabled=1

    [docker-ce-test]
    name=Docker CE Test - $basearch
    baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/test
    enabled=1

    列出所有docker版本,并排序

    选择指定版本安装,此时可能会报错,是因为没有安装相应版本的docker-ce-selinux,需要先安装docker-ce-selinux,安装完成后查看安装的版本
    yum list docker-ce-selinux- --showduplicates | sort -ryum -y install docker-ce-17.03.2.ce-1.el7.centos
    yun -y install docker-ce-selinux-17.03.1.ce-1.el7.centos.noarch
    docker -v
    yum install -y yum-utils device-mapper-persistent-data lvm2
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    yum install docker-ce
    systenctl restart docker
    

      

    、docker-compose 最新版安装

    docker-compose版本下载地址:

    https://github.com/docker/compose/releases
    curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    chmod +x /usr/local/bin/docker-compose
    ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
    docker-compose -v
  • 相关阅读:
    php 构造函数支持不同个数参数的方法
    浅谈管理系统操作日志设计(附操作日志类)
    PHP 远程文件下载的进度条实现
    PHP处理大文件下载
    c语言线性表
    c语言题目:找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点
    c语言:从一组数据中选出可以组成三角形并且周长最长的三个数(简单)
    关于Staruml与powerdesigner启动使用中的问题
    Win7下安装Apache+PHP+MySQL
    <转>java编译问题:使用了未经检查或不安全的操作
  • 原文地址:https://www.cnblogs.com/ling-yu-amen/p/10094737.html
Copyright © 2011-2022 走看看