docker学习

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]

  • -m后面接的是这次生成镜像的备注;-a后面接的是操作人是谁;接着放原来镜像的id;接着是命名新镜像以及版本号

使用docker build来创建自己的镜像:
-要先创建dockerfile文件,文件中包含如何创建镜像的指令
先创建一个文件夹test:mkdir test
然后在test文件夹里面创建一个dockerfile文件:touch Dockerfile
–Dockerfile里面内容如下:
FROM centos
MAINTAINER REGAN 45646@qq.com
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值