美文网首页
Linux 基础(四)

Linux 基础(四)

作者: knot98 | 来源:发表于2019-01-09 20:26 被阅读0次

    Linux 基础(四)

    一、镜像管理

    (1)获取镜像
    docker search centos
    docker pull centos:6.9
    docker pull centos:7.5.1804
    docker pull nginx
    
    (2)查询镜像
    docker images
    docker images -q 
    docker inspect ID/name:tag
    
    (3)删除镜像
    docker rmi  ID 
    docker rmi `docker images -q`
    docker rmi $(docker images -q)
    
    (4)导入导出镜像
    [root@docker ~]# docker image save nginx >/opt/nginx.tar.gz
    [root@docker ~]# docker image load -i /opt/nginx.tar.gz
    
    (5)启动容器并获取镜像
    [root@docker ~]# docker  run -d -p 80:80 httpd
    [root@docker ~]# docker ps -a
    [root@docker ~]# docker images
    
    (6)docker一步一步学习制作镜像
    # 1.启动新容器
    docker run -it --name "centos7.5" 76d6bc25b8a5
    
    # 2.优化yum源
    mv /etc/yum.repos.d/*.repo /tmp
    echo -e "[ftp]\nname=ftp\nbaseurl=ftp://10.0.0.100/pub/centos7\ngpgcheck=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
    
    (7)快速创建镜像
    # 使用dockerfile ,配置文件名字必须叫做 dockerfile
    [root@hgq ~]# cd /opt
    [root@hgq opt]# mkdir dockerfile/
    [root@hgq opt]# cd dockerfile/
    [root@hgq dockerfile]# pwd
    /opt/dockerfile
    [root@hgq dockerfile]# vim dockerfile
    [root@hgq dockerfile]# cat dockerfile
    
    FROM centos:7.5.1804
    RUN mv /etc/yum.repos.d/*.repo /tmp
    RUN echo -e "[ftp]\nname=ftp\nbaseurl=ftp://10.0.0.100/pub/centos7\ngpgcheck=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"]
    
    [root@hgq dockerfile]# pwd
    /opt/dockerfile
    
    # 跑docker文件
    [root@hgq dockerfile]# docker build -t "hgq/centos7_sshd:v2"  /opt/dockerfile
    

    二、容器基本管理

    (1)容器的类型
    # 工具类:vim
    docker run -it --name="test_vim" 3fe2fe0dab2e /bin/bash
    
    # 服务类:nginx
    docker run -d -p 8080:80 --name="nginx" nginx:1.14
    
    (2)容器的多种启动方式
    # 交互式启动
    docker run -it --name "testcentos" centos:6.9 /bin/bash
    # 主要是针对于工具类的容器,一旦exit容器,容器就自动关闭
    
    # 守护式启动
    # 1.交互式启动容器 ctrl+p+q
    docker run -it --name "nginx" nginx /bin/bash
    ctrl+p+q 
    docker attach nginx
    
    # 2.死循环
    docker run --name nginx -d nginx /bin/sh -c "while true;do echo hello world;sleep 1;done"
    
    # 3.服务前台运行
    sshd -D
    nginx -g ""
    
    
    ps:hang 夯住
    
    (3)容器的常用管理命令
    docker ps -a | -q | -l
    
    docker rm 容器ID|容器名称
    
    # 批量删除已关闭的容器
    docker rm -v $(docker ps -qa -f status=exited)
    
    # 批量强制删除所有
    docker rm -f `docker ps -a -qa`
    
    docker top nginx
    docker inspect nginx
    docker attach 容器ID|容器名称(工具类)配合ctrl+p+q
    docker exec -i -t 容器ID|容器名称
    /bin/bash(服务类),一般是做服务类容器调试用
    docker exec -it centos6.9 /bin/bash
    
    # 结束docker
    docker stop
    docker kill
    
    # 启动docker
    docker start -i
    docker restart 容器ID|容器名称
    

    二、制作私有仓库

    配置私有仓库
    docker run -d -p 5000:5000 --restart=always --name registry -v /opt/Registry:/var/lib/registry  registry
    
    vim /etc/docker/daemon.json
    # 将   "insecure-registries": ["10.0.0.100:5000"] 添加到该文件中
    {
       "registry-mirrors":                      ["https://68rmyzg7.mirror.aliyuncs.com"],
       "insecure-registries": ["10.0.0.100:5000"]
    }
    
    # 重启docker 
    systemctl  restart docker
        
    

    三、使用本地镜像

    制作本地镜像并push到私有仓库中:
    # 创建镜像并打上标签
    docker tag nginx 10.0.0.100:5000/hgq/nginx:v1
    # 查看以下刚创建的镜像
    docker images
    # 将刚创建的镜像push到私有仓库中
    docker push 10.0.0.100:5000/hgq/nginx:v1
    
    从私有仓库pull镜像到本地:
    # 将私有仓库中已有的镜像pull到本地,然后 run 执行该镜像就可以使用了
    docker pull 10.0.0.100:5000/hgq/nginx:v1
    

    相关文章

      网友评论

          本文标题:Linux 基础(四)

          本文链接:https://www.haomeiwen.com/subject/doqnrqtx.html