前沿
今天我们来聊聊docker
,这个已经🔥火的不能在火的产品了。
Docker的由来
我们知道一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员都是考验。
就在这里明星Docker
诞生了 软件可以带环境安装 也就是说,安装的时候,把原始环境一模一样地复制过来。开发人员利用Docker
可以消除 协作 编码时“在我的机器上可以正常工作”的问题
使用
我们如果不想安装的话,可以直接使用docker
在线的学习机器 地址 https://labs.play-with-docker.com/
登入下就可以直接使用啦。
我们来看一张图
这是一张 简单的docker
架构图
- 首先我们从远程仓库来 拉取镜像。这里以
nginx
为例
$ docker pull nginx
- 接着我们将容器运行起来
//我们可以先查看下镜像
$ docker images
//接着我们启动容器
$ docker run --name mynginx -d -p80:80 nginx
//查看容器使用情况
$ docker ps
//进入容器内部
$ docker exec -it 容器ID bash
//强制删除容器
$ docker rm -f 容器ID
--name
指定容器名称
-d
后台运行容器
-p
指定端口,主机端口号:容器端口号
-v
目录映射:-v 'dir 宿主机目录' : <容器里目录>
构建镜像
我们有两种方式来构建镜像
一、使用 docker commit
// 构建镜像m1
$ docker commit 容器ID m1
// 查看镜像
$ docker images
// 启动容器
$ docker run --name mym1 -d -p81:80 m1
二、 使用 Dockerfile
// vim创建一个 Dockerfile 文件里面就写一句话 FROM nginx 然后保存退出
// 然后执行
$ docker build -t m2 .
// 查看镜像
$ docker images
// 启动容器
$ docker run --name mym2 -d -p82:80 m2
导出镜像
我们也可以将镜像导出来给同伴来使用
//将容器m2 打包成 tar文件
$ docker save m2 > 1.tar
//然后可以查看文件是否存在
$ ls
1.tar
然后同伴拿到 tar
文件可以执行
$ docker load < 1.tar
来得到 镜像
最后 如果你要push到远程 要去 https://hub.docker.com/
上申请账号
致谢
感谢你看完这篇文章,有什么不对的地方欢迎指出,谢谢🙏
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。