工夫那么贵重哪有一个小时学习一个新的技能!那么十分钟呢?本文记录工作中须要疾速应用 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` 可拜访