最近熟悉了一下docker的基本用法,获益良多。
那么在工作中我们为什么要使用Docker
1.更高效的利用系统资源
2.更快速的启动时间
3.一致的运行环境
4.持续交付和部署
5.更轻松的迁移
6.更轻松的维护和扩展
因此为了以后操作使用,特别对一些常用命令行做记录。
基本概念
Docker 包括三个基本概念
镜像(Image)
Docker镜像 (Image),就相当于是一个root文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套ubuntu 16.04最小系统的root文件系统。
Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序,库,资源,配置等文件,还包含了一些为运行时准备的配置参数(如:匿名卷,环境变量,用户等)
容器(Container)
镜像和容器的关系,就是面向对象程序设计中的类和实例一样,镜像时静态的定义,容易时镜像运行时的实体。容器可以被创建,启动,停止,删除,暂停。
仓库(Repository)
启动终端后,通过命令可以检查安装后的docker 版本
admindeMacBook-Pro:~ admin$ docker --version
Docker version 19.03.5, build 633a0ea
admindeMacBook-Pro:~ admin$ docker-compose --version
docker-compose version 1.24.1, build 4667896b
admindeMacBook-Pro:~ admin$ docker-machine --version
docker-machine version 0.16.2, build bd45ab13
如果docker version, docker info 都正常的话,可以尝试运行一个.[Nginx服务器](https://store.docker.com/images/nginx/](https://store.docker.com/images/nginx/)
1.利用Commit 理解镜像
注意:docker commit 命令除了学习之外,还有一些特殊应用场合,比如被入侵后保存现场等。
但是不要用docker commit 定制镜像,定制镜像应该使用dockerfile来完成。
现在让我们定义一个Web服务器为例子,来讲解镜像是如何构建的。
docker run --name Webserver -d -p 80:80 nginx
这条命令会用nginx镜像启动一个容器,命名为Webserver并且映射了80:80端口,这样我们可以用浏览器去访问这个nginx服务器。
- 修改容器内容
admindeMacBook-Pro:~ admin$ docker exec -it webserver bash
root@7d752892e9d4:/# echo '<h1>Hello world!</h1>' > /usr/share//nginx/html/index.html
root@7d752892e9d4:/# exit
现在我们再刷新浏览器,会发现内容被改变了
查看修改了容器的文件,也就是改动了容器的存储层
docker diff webserver
网友评论