zoukankan      html  css  js  c++  java
  • Docker容器技术

    三大块(管理):
    镜像
    容器
    镜像仓库

    1.环境准备:

    1-安装docker安装包  其实就是在cd /etc/yum.repo.d/  下配置yun源
    curl http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo # 如果没yun源配好,先清空yun源文件夹下的所有源,清空(rm -rf *),和上面那条一起执行
    wget
    -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    2-安装依赖包
    yum install -y yum-utils device-mapper-persistent-data lvm2
    3-查看docker版本情况
    yum list docker-ce.x86_64 --showduplicates | sort -r
    4-安装了两个安装包(一个是docker,另一个是他的核心),选择17.03.2版本比较稳定
    yum install -y --setopt=obsoletes=0 docker-ce-17.03.2.ce-1.el7.centos.x86_64 docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch
    # reload是重载一下,没改配置文件可以不做
    systemctl daemon-reload
    # 启动docker 用start也行 systemctl restart docker # 查看docker版本 docker version docker info

    2.配置镜像加速

    阿里云Docker-hub

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

    # 先创建配置文件目录
    mkdir -p /etc/docker
    # 在执行下面语句
    tee /etc/docker/daemon.json <<-'EOF'
    {
       "registry-mirrors": ["https://68rmyzg7.mirror.aliyuncs.com"]
    }
    EOF                
    或者:
    vim /etc/docker/daemon.json
        {
             "registry-mirrors": ["https://68rmyzg7.mirror.aliyuncs.com"]
        }

    配置完后在重启一下docker: systemctl restart docker

    3.常管管理

    3.1获取镜像:

    # 查询软件 后面跟软件名
    docker search centos
    # 下载基础操作系统镜像
    docker pull centos:6.9 docker pull centos:7.5.1804
    #
    docker pull nginx

    3.2查询镜像

    # 查看下载好的镜像
    docker images
    # 查看docker的id docker images
    -q
    # 显示镜像的详细说明 docker inspect ID
    /name:tag

    # 启动镜像中的centos
    docker run -it centos:6.9
    # 查看启动镜像的版本
    cat /etc/redhat-release

    3.3删除镜像

    # 删除单个镜像
    docker rmi ID
    # 删除全部镜像 docker rmi `docker images
    -q` docker rmi $(docker images -q)

    3.4导入导出镜像

    # 导出下载好的镜像重定向到指定文件夹下
    [root@docker ~]# docker image save nginx >/opt/nginx.tar.gz
    # 导入某个镜像
    [root@docker ~]# docker image load -i /opt/nginx.tar.gz

    3.5启动容器并获取镜像

    # 基于httpd起一个容器,先到本地找,如果没有就自动下载
    [root@docker ~]# docker run -d -p 80:80 httpd [root@docker ~]# docker ps -a [root@docker ~]# docker images

    4.docker一步一步学习制作镜像

    语法:
    第一个镜像创建:

    docker ps -a 
    docker commit xxxxxx oldguo/wordpress:v1
    docker images 

    制作镜像: centos7.5+vim+net-tools+iproute+sshd(基于centos7.5具有后面内容功能)

    1.启动容器:

    docker run -it --name "centos7.5" 76d6bc25b8a5

    2.优化yum源

    mv /etc/yum.repos.d/*.repo /tmp
    echo -e "[ftp]
    name=ftp
    baseurl=ftp://10.0.0.100/pub/centos7
    gpgcheck=0">/etc/yum.repos.d/ftp.repo

    3.安装必须软件包

    yum install -y vim net-tools  iproute   openssh-*   -y

    4.启动SSHD

     mkdir /var/run/sshd
     echo 'UseDNS no' >> /etc/ssh/sshd_config
     sed -i -e '/pam_loginuid.so/d' /etc/pam.d/sshd
     echo 'root:123456' | chpasswd
     /usr/bin/ssh-keygen -A
     /usr/sbin/sshd -D 

    注意: 以上操作做完之后,会一直不退出,需要用以下命令退回到宿主机,并不关闭容器
    ctrl p q  (这个命令在终端看不见)

    5.制作镜像

    docker commit centos7.5 oldguo/centos7_sshd:v2

     5.使用dockerfile制作镜像(更加简便和减少操作)

    必须依赖优化过的yum源,否则会报错并停止:

    ## Centos7.5
    [root@docker sshd]# vim  dockerfile 
    $ 阿里云的不用优化yum源,两行
    FROM centos:7.5.1804 # 镜像基于这个容器 RUN mv /etc/yum.repos.d/*.repo /tmp RUN echo -e "[ftp] name=ftp baseurl=ftp://10.0.0.100/pub/centos7 gpgcheck=0">/etc/yum.repos.d/ftp.repo RUN yum install -y openssh-server RUN yum install -y openssh-clients RUN yum install net-tools* -y RUN yum install iproute-* -y RUN mkdir /var/run/sshd RUN echo 'UseDNS no' >> /etc/ssh/sshd_config RUN sed -i -e '/pam_loginuid.so/d' /etc/pam.d/sshd RUN echo 'root:123456' | chpasswd RUN /usr/bin/ssh-keygen -A EXPOSE 22 CMD ["/usr/sbin/sshd", "-D"]
    # 构建一个镜像到指定文件夹下 docker build
    -t "oldguo/centos7_sshd:v3" /opt/dockerfile
  • 相关阅读:
    cf1100 F. Ivan and Burgers
    cf 1033 D. Divisors
    LeetCode 17. 电话号码的字母组合
    LeetCode 491. 递增的子序列
    LeetCode 459.重复的子字符串
    LeetCode 504. 七进制数
    LeetCode 3.无重复字符的最长子串
    LeetCode 16.06. 最小差
    LeetCode 77. 组合
    LeetCode 611. 有效三角形个数
  • 原文地址:https://www.cnblogs.com/zhaijihai/p/10235037.html
Copyright © 2011-2022 走看看