• Docker快速入门


    介绍

    Docker 有点像虚拟机。但与虚拟机不同,Docker不是创建一个完整的虚拟操作系统,而是通过共享宿主机内核资源,创建一个个隔离的环境来运行应用程序。这样可以显著提升性能并缩小应用程序的大小。

    安装

    centos 下

    $ sudo yum install -y yum-utils
    $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    $ sudo yum install docker-ce docker-ce-cli containerd.io
    #启动服务
    $ sudo systemctl start docker
    #设为开机启动(可选)
    $ sudo systemctl enable docker
    #测试
    $ sudo docker run hello-world
    #将当前用户加入docker用户组,执行docker命令不用sudo
    $ sudo usermod -aG docker your-user
    

    安装完成后开启加速,修改 /etc/docker/daemon.json 配置,使用中国镜像加速

    {
      "registry-mirrors": [
        "https://hub-mirror.c.163.com",
        "https://mirror.baidubce.com"
      ]
    }
    

    重启 sudo systemctl daemon-reload && sudo systemctl restart docker 后生效

    基本使用

    docker 有三个概念:仓库,镜像,容器

    1. 仓库:存储镜像,类似 github 的仓库。
    2. 镜像:一个可执行包,包含运行应用程序所需的所有内容,代码,依赖,环境变量和配置文件。
    3. 容器: 运行中的镜像的一个实例。

    操作镜像

    搜索一个镜像,以 nginx 为例

    $ docker search nginx
    

    拉取一个 nginx 镜像到本地,默认拉取 latest tag 的镜像,可以去 https://hub.docker.com/_/nginx?tab=tags 选择你想要的 tag 进行拉取

    $ docker pull nginx[:tag]
    

    运行一个镜像,如果本地没有这个镜像,会先进行 pull 操作

    ## --rm 容器停止后删除
    ## -p 端口转发  --name 命名容器
    $ docker run --rm -p 8080:80 --name my-nginx nginx
    

    然后浏览器打开 http://127.0.0.1:8080/

    此时会在终端打印出 nginx 日志,想要后台运行加 -d 参数

    列出本地镜像,可以看到刚才拉取的 nginx

    $ docker image ls #等于docker images
    

    删除一个或多个本地镜像,-f 强制,image_id 无需全部打出,只要不冲突打前一位都没问题

    $ docker image rm IMAGE_ID1 [ IMAGE_ID2 IMAGE_ID3]
    

    或者 docker rmi ... 也是删除镜像

    操作容器

    一个镜像运行起来就是一个容器了,接着上面运行起来 nginx 后,新开一个终端

    列出/停止/删除容器

    $ docker container ls #[-a所有,包括停止的]
    $ docker stop/rm CONTAINER_ID #[or name]
    

    进入一个容器

    $ docker exec -it my-nginx /bin/sh
    

    结语

    这里只写了一些最简单的基本操作,想要深入了解请查阅官方文档

    推荐 Docker — 从入门到实践

  • 相关阅读:
    面试系列14 redis的过期策略都有哪些
    面试系列13 redis都有哪些数据类型
    面试系列12 redis和memcached有什么区别
    面试系列11 缓存是如何使用
    面试系列10 es生产集群的部署架构
    linux命令中的“<”和“|”是什么意思?
    如何征服面试官,拿到Offer [转]
    ddt框架优化(生成html报告注释内容传变量)
    python笔记31-使用ddt报告出现dict() -> new empty dictionary dict(mapping) 问题解决
    测试中 unittest.main(verbosity=1) 是什么意思
  • 原文地址:https://www.cnblogs.com/luke44/p/docker-quickly-doc.html
Copyright © 2020-2023  润新知