乐趣区

关于docker:十分钟掌握Docker基本使用

工夫那么贵重哪有一个小时学习一个新的技能!那么十分钟呢?本文记录工作中须要疾速应用 docker 的几个场景,真正帮你十分钟入门!

  • 场景一:理解何为 Docker

    如果你不太理解 Docker,还是本人搜一下吧,本文基于你至多晓得 Docker 干啥用的;Docker 是通过规范的配置文件来发明对立的开发或者生产环境的一个工具,其外围就是镜像(曾经配置好了各种环境)。

  • 场景二:配置 Docker 国内镜像

    没啥好说的,间接上办法

    如果你是装置的 Mac 或者 Windows 客户端都能够依照图所示配置镜像地址

Linux 下:

# vi /etc/docker/daemon.json
{"registry-mirrors": ["http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn"]
}
# 而后依据你是 Ubuntu 还是 Centos 等其余零碎,重启 docker 服务即可 
  • 场景三:疾速查找、下载你须要的 Docker 环境

    # 查找环境(前面的 `--no-trunc` 是为了残缺输入形容信息)# 你也能够去 `https://hub.docker.com/` 网站搜寻,搜寻性能更弱小
    docker search mysql --no-trunc
    # 搜寻某个镜像的 tags(这个 docker 并未提供原生命令,解决方案都是利用 docker 提供的凋谢 api 进行搜寻,或者去 `https://hub.docker.com/` 查阅
    # 本命令来自 `https://stackoverflow.com/questions/28320134/how-can-i-list-all-tags-for-a-docker-image-on-a-remote-registry`)
    wget -q https://registry.hub.docker.com/v1/repositories/ubuntu/tags -O -  | sed -e 's/[][]//g' -e 's/"//g'-e's/ //g'| tr'}''\n'  | awk -F: '{print $3}'
    # 下载某个镜像 
    docker pull mysql
    # 下载某个特定 `tags`(通常是版本号)的镜像,强烈建议制订 `tags` 下载,尤其是生产环境
    docker pull mysql:8.0
    # 删除某个镜像
    docker rmi mysql
  • 场景四:基于某个镜像创立、运行并进入容器

    # 查看所有容器
    docker ps -a # -a 参数能够查看已进行运行的容器
    # 基于某个镜像创立容器并运行
    docker create -it --name='ubuntu-20' ubuntu  # 参数 `-it` 标识了能够反对规范输入输出,通常一起应用 `--name` 为该容器起个名字,强烈建议肯定起一个独立名字
    docker start ubuntu-20 # 启动该容器
    docker exec -it ubuntu-20 /bin/bash # 在该容器运行交互命令行工具,即可进入容器
    
    # 疾速创立并运行
    # 这是一条整合命令,相当于下面的三条,特地留神,如果不增加 `-d` 参数,运行后间接进入到容器交互模式,如果此时 exit 退出,则容器会主动进行,`-d` 是保障后盾运行
    docker run -it -d --name='ubuntu-20' ubuntu /bin/bash
    # 容器操作是 docker 中最简单的性能,须要多多学习钻研 

    场景五:映射本地端口及文件目录

    # Docker 最外围的性能就是代替宿主机运行咱们的服务(尤其是微服务),所以要凋谢端口给外界可能拜访,开发环境中还要凋谢目录不便代码及配置共享,调试公布镜像
    
    # `-P` 主动映射所有凋谢的端口, 映射多个间接指定多个 `--expose` 参数即可
    docker run -it -d -P --name=port-test --expose=8000 --expose=8001 ubuntu /bin/bash
    # `-p` 指定端口映射
    docker run -it -d -p 8000:8000 --name=port-test ubuntu /bin/bash
    
    # 查看容器映射的端口
    docker port port-test
    # 8000/tcp -> 0.0.0.0:55002
    # 8000/tcp -> :::55002
    
    # 映射目录 Docker 提供了两个参数,别离是不同的形式,其中 `-v` 足够平时开发调试应用,如果是应用更加欠缺的文件治理,请应用 `--mount` 参数,这里只记录下 `-v` 的应用:docker run -it -d -v /path/to/source/test:/www --name=share-test ubuntu /bin/bash
    # 进入容器后,可发现 `/www` 可拜访 
退出移动版