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
  • 相关阅读:
    【渗透测试】hydra使用小结
    Git/SQL/正则表达式的在线练习平台
    加密算法的前世今生
    Linux的进程、线程、文件描述符是什么
    一文看懂 session 和 cookie
    Linux 文件目录都是什么鬼?
    Linux shell 的实用小技巧
    关于 Linux shell 你必须知道的
    我用四个命令概括了 Git 的所有套路
    如何寻找最长回文子串
  • 原文地址:https://www.cnblogs.com/zhaijihai/p/10235037.html
Copyright © 2011-2022 走看看