zoukankan      html  css  js  c++  java
  • Docker笔记(一) Docker基础概述

    Docker学习

    Docker概述

    Docker为什么会出现?

    特性 容器 虚拟机
    启动 秒级 分钟级
    硬盘使用 一般为 MB 一般为 GB
    性能 接近原生 弱于
    系统支持量 单机支持上千个容器 一般几十个

    Docker技术优点

    • 更快速的交付和部署
    • 更便捷的升级和扩缩容
    • 更简单的系统运维
    • 更高效的计算资源利用
    • 一致的运行环境
    • 更轻松的迁移

    Docker安装

    Docker基本组成

    镜像(image)

    容器(container)

    仓库(repository)

    安装Docker

    环境准备

    安装

    1.0 卸载旧的版本

    sudo yum remove docker 
                      docker-client 
                      docker-client-latest 
                      docker-common 
                      docker-latest 
                      docker-latest-logrotate 
                      docker-logrotate 
                      docker-engine
    

    2.0 需要的安装包

    sudo yum install -y yum-utils
    

    3.0 设置镜像仓库

    国外

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

    阿里云(推荐使用,快!快!快!)

    sudo yum-config-manager 
        --add-repo 
        http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    

    4.0安装docker相关内容

    docker-ce 社区版

    docker-ee 企业版(需要授权)

    更新索引

    yum makecache fast
    

    安装docker Engine

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

    5.0启动docker

    sudo systemctl start docker
    

    查看docker版本

    sudo docker version
    

    6.0测试hello-world

    sudo docker run hello-world
    

    7.0 查看下载镜像

    sudo docker images
    

    阿里云镜像加速

    Docker常用命令

    帮助命令

    docker version # 显示docker的版本信息
    docker info    # 显示docker的系统信息,包括镜像和容器的数量
    docker --help  # 帮助命令
    

    帮助文档Reference documentation | Docker Documentation

    镜像命令

    [root@node1 ~]# docker images
    REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
    hello-world   latest    feb5d9fea6a5   3 weeks ago   13.3kB
    
    # 解释
    REPOSITORY 镜像的仓库源
    TAG 镜像的标签
    IMAGE ID 镜像的id
    CREATED 镜像的创建时间
    SIZE 镜像的大小
    
    

    docker search搜索镜像

    docker search mysql
    

    docker pull 下载镜像

    docker pull mysql
    

    docker rmi删除镜像

    docker rmi -f 容器id
    

    容器命令

    注:先有镜像测才能创建容器,下载centos镜像

    docker pull centos
    

    新建容器并启动

    docker run [可选参数] image
    # 参数说明
    --name="Name" 容器名
    -d  后台方式运行
    -it 使用交互方式运行,进入容器查看内容
    -p 指定容器的端口 -p 8080:8080
    	-p ip:主机端口:容器端口
    	-p 主机端口:容器端口(常用)
    	-p 容器端口
    -P 随机指定端口
    

    启动并进入容器

    [root@node1 ~]# docker run -it centos /bin/bash
    [root@40153b62f4de /]# 
    

    退出容器

    # 直接容器停止并退出
    [root@40153b62f4de /]# exit
    exit
    
    # 退后容器不停止
    Ctrl+P+Q
    

    查看容器

    # docker ps 命令
    -a # 运行过的容器
    -n=? #显示最近创建的容器
    -q #只显示容器的编号
    
    # 运行的
    [root@node1 ~]# docker ps
    CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
    # 运行过的
    [root@node1 ~]# docker ps -a
    CONTAINER ID   IMAGE         COMMAND       CREATED             STATUS                         PORTS     NAMES
    40153b62f4de   centos        "/bin/bash"   2 minutes ago       Exited (0) 35 seconds ago                optimistic_kalam
    6509d33ff71c   hello-world   "/hello"      About an hour ago   Exited (0) About an hour ago             nice_lewin
    4e86a9fd5dd8   hello-world   "/hello"      About an hour ago   Exited (0) About an hour ago             great_carson
    [root@node1 ~]# 
    

    删除容器

    docker rm 容器id
    

    启动和停止容器

    docker start 容器id # 启动容器
    docker restart 容器id # 重启容器
    docker stop 容器id # 停止容器
    docker kill 容器id # 强制停止容器
    

    常用其他命令

    后台启动容器

    # 后台启动容器
    docker run -d 镜像名
    # 常见的坑: docker容器使用后台运行,就必须要有要一个前台进程,docker发现没有应用,就会自动停止。
    

    查看日志命令

    # 查看日志命令
    docker logs  [参数] [容器id]
    
    # -tf  显示日志
    # --tail [日志条数]
    docker logs  -tf [容器id]
    docker logs  -tf --tail 10 [容器id]
    

    查看容器内部进程信息

    # 查看容器内部的进程信息
    docker top [容器id]
    

    查看镜像元数据

    docker inspect [容器id]
    

    进入当前正在运行的容器

    #通常容器都是使用后台运行
    #方式一,进入容器开启一个新的终端,可以在里面操作(常用)
    docker exec -it [容器id] /bin/bash
    
    #方式二,进入正在执行的终端,不会启动新的进程
    docker attach [容器id]
    

    从容器内拷贝文件到主机

    docker cp [容器id]:容器源文件 主机目标文件
    #示例
    docker cp [容器id]:/home/test.java test.java
    

    Docker实操练习

    部署nginx

    搜索镜像

    docker search nginx
    

    下载镜像

    docker pull nginx
    

    查看镜像

    docker images
    
    REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
    nginx         latest    87a94228f133   9 days ago    133MB
    hello-world   latest    feb5d9fea6a5   3 weeks ago   13.3kB
    centos        latest    5d0da3dc9764   5 weeks ago   231MB
    
    

    启动镜像

    # -d 后台运行
    # --name 宿主名字
    # -p 宿主机端口:容器内端口
    docker run -d --name nginx01 -p 3344:80 nginx
    

    运行测试

    [root@node1 ~]# curl localhost:3344
    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
    html { color-scheme: light dark; }
    body {  35em; margin: 0 auto;
    font-family: Tahoma, Verdana, Arial, sans-serif; }
    </style>
    </head>
    <body>
    <h1>Welcome to nginx!</h1>
    <p>If you see this page, the nginx web server is successfully installed and
    working. Further configuration is required.</p>
    
    <p>For online documentation and support please refer to
    <a href="http://nginx.org/">nginx.org</a>.<br/>
    Commercial support is available at
    <a href="http://nginx.com/">nginx.com</a>.</p>
    
    <p><em>Thank you for using nginx.</em></p>
    </body>
    </html>
    [root@node1 ~]# 
    

    进入容器

    [root@node1 ~]# docker exec -it nginx01 /bin/bash
    root@649edc671df1:/# whereis nginx
    nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
    root@649edc671df1:/# 
    
    本篇内容是参考网络教程学习过程中的笔记
    开发工作着,生活快乐着,留下总结,相互交流,共同进步
  • 相关阅读:
    OpenCV 2.4.9
    开机黑屏 仅仅显示鼠标 电脑黑屏 仅仅有鼠标 移动 [已成功解决]
    吐槽一下CSDN的封停审查机制
    【课程分享】Oracle数据库系统project师
    Html的空格显示
    iOS UIWebView 访问https 绕过证书验证的方法
    Java实现 蓝桥杯VIP 算法训练 整除问题
    Java实现 蓝桥杯VIP 算法训练 数位分离
    Java实现 蓝桥杯VIP 算法训练 薪水计算
    Java实现 蓝桥杯VIP 算法训练 完数
  • 原文地址:https://www.cnblogs.com/lovechengyu/p/15458905.html
Copyright © 2011-2022 走看看