something about docker(更新中)

docker是一个容器。docker之镜像/仓库/容器(去仓库[hub.docker.com]把镜像[image]拉到本地运行起来)

镜像就是一系列文件(只读);同一个镜像可以用于生成多个容器(可写)

docker在运行一个程序之前会先看,本地有没有一个要运行的容器的image。如果没有的话,他回去远端的registry去下载。

 

host正在使用的电脑

镜像是可以从远端拉取,或者我们本地构建的文件的打包。

容器是镜像的运行实体

deamon用来接受用户命令

docker的官方仓库是dockerhub。国内还有一些私有的仓库,如时速云,aliyun,daocloud

registry

操作:

docker search(可以指定镜像的某一个tag来下载,没有指定的话,会看到提示,使用默认的tag:latest来下载)

docker pull.  (下载的过程中我们发现他是在一层一层下载,下载完成之后,分层解压缩)   

docker run (运行)

docker tag imageA  imageB (重新标记一个标签创建一个新的镜像,此时用命令docker images可以看到有一个新的imageB产生)

docker push imageB (push一个镜像到远端仓库[默认的远端仓库为dockerhub],此处会提示需要权限,通过docker login获取权限)

docker-compose

例如:本地命令行运行docker run nginx运行的结果如下:

$ docker run nginx

Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
27833a3ba0a5: Pull complete 
ea005e36e544: Pull complete 
d172c7f0578d: Pull complete 
Digest: sha256:e71b1bf4281f25533cf15e6e5f9be4dac74d2328152edf7ecde23abc54e16c1c
Status: Downloaded newer image for nginx:latest

运行docker images 可以看到本地已经有的images

$ docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              27a188018e18        6 days ago          109MB

运行docker ps 查看容器内运行的程序

$ docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

⚠️注意:docker在容器内运行的操作都是没有被保存下来的

命令小结:

docker commit用于创建一个新的镜像

 

docker之镜像的创建--Dockerfile (语法):

docker中镜像是分层存储的,dockerfile的每一行对应一个id

imags分层实现了镜像资源的共享,降低了存储压力。image只是可读的,在container中的东西才是可写的,但是在container中的改动是不会被储存的。

那么问题来了,对于需要持久化存储的一些东西(譬如容器间共用的一些数据)可否实现呢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值