docker介绍
-是开源的
-go语言开发的
-基本不消耗系统资源,使得docker里面运行的应用的性能很高
-在操作系统层面实现的虚拟化,直接复用本地主机跟系统,它是内核级的虚拟化
-docker容器的启动是秒级的,极快
镜像-仓库-容器
-镜像:其实就是一个安装文件,类似Windows系统的镜像
-仓库:跟git类似,只不过不存放代码,存放的是docker镜像而已,分私有仓库和公有仓库
-容器:通过镜像创建并运行起来的实例叫做容器,类似于通过Windows10镜像安装好的就叫Windows系统
容器可以被启动,停止,重启和删除;容器之间是相互隔离的,绝对保证安全
容器可以看作是一个启动了的简化版Linux系统
安装docker:yum install docker
启动docker:systemctl start docker.service
系统启动时自动加载docker:systemctl enable docker.service
使用docker pull命令来获取镜像,如获取MySQL镜像:获取慢的话,可以修改镜像源
docker pull mysql
查看本地已有的镜像:docker images
-repository:镜像的仓库地址,直接一个名字的话,是dockerhut的;有IP的话一般是私有的仓库
-tag:镜像的版本
-image id:镜像的id
-created:镜像下载的时间
-size:镜像的大小
启动镜像:sudo docker run -t -i [docker-name]
-t 为容器分配一个伪输入终端
-i 持续打开伪输入终端
查看运行中的容器:docker ps
生成新的docker镜像:
-先退出当前运行中的镜像:exit
-然后:docker commit -m ‘commit messages’ -a ‘auther’ imageid [newname]:[new-version]
使用docker build来创建自己的镜像:
-要先创建dockerfile文件,文件中包含如何创建镜像的指令
先创建一个文件夹test:mkdir test
然后在test文件夹里面创建一个dockerfile文件:touch Dockerfile
–Dockerfile里面内容如下:
FROM centos
MAINTAINER REGAN [email protected]
RUN yum -qqy install python
FROM 告诉docker使用哪个镜像作为基础
接着是维护者信息
RUN指令是在创建中运行,例如安装一些软件包,这里使用yum安装python
注意使用yum需要指定参数-qqy否则报错
然后使用docker build构建镜像:docker build -t=’[your-image-name]:[version]’ .
注意!,命令后面那个点(.)很重要,表示从当前目录找dockerfile文件来构建镜像
修改镜像名称:docker tag imageid [newname]:[new-version]
将自己的镜像上传到公有库中:docker push [docker-name]
将自己做好的镜像保存到本地当作备份:docker save -o [save-after-name].tar [docker-name]
删除镜像-f强行删除:docker rmi -f [imageid]
把备份的镜像(.tar)恢复成正常镜像:docker load --input [name].tar
使用docker run命令来启动容器,它会
1.先检查本地是否存在指定的镜像,不存在则从公有仓库下载
2.接着使用指定镜像创建并启动容器
3.分配一个文件系统,并在只读的镜像外挂载一层可读写层
4.从宿主机配置的网桥接口桥接一个虚拟接口到容器中去
5.从地址池分配一个ip地址给容器
6.执行用户指定的应用程序
7.执行完毕之后终止容器
查看CONTAINER ID:docker ps
终止容器:docker stop [CONTAINER ID]
启动容器:docker start [CONTAINER ID]
重启容器:docker restart [CONTAINER ID]
查看容器log:docker logs [CONTAINER ID]
启动docker:systemctl start docker
重启docker:systemctl restart docker
关闭docker:systemctl stop docker
把文件放到容器里面
1.先获取容器name
docker ps -a
2.根据容器名获取长ID
docker inspect -f ‘{ {.ID}}’ docker-name
3.在宿主机上执行
docker cp 你的文件路径 容器长ID:docker容器路径
示例:
docker inspect -f ‘{ {.ID}}’ y3_db_1
docker cp /home 24105c60df62cdcfa1d0dd534611274ab2fb444e8e3e51df92e46900551f92ea:/home