ubuntu下的Docker命令使用

Docker和VM区分开来是不一样的.
在我的理解里VM虚拟机相当于一个操作系统的拷贝,拥有操作系统所拥有的所有资源,因此很占用内存.
而Docker可以理解为便携式的VM,只包含我们需要的程序,而没有其他额外的内容.
Docker主要有三部分:

1. image镜像
2. 容器
3. 仓库

镜像和容器之间关系:

image只包含可读的内容,不可以直接运行,而容器则是运行单位.
两者关系可以对应成这样:

镜像=类
容器=类的实例l

镜像是只读的,而容器是在镜像层上的可写层
容器运行时需要本地存在对应的镜像,如果不存在则会从镜像仓库中下载(默认是 Docker Hub 公共注册服务器中的仓库)

仓库:

仓库分为共有仓库和私有仓库,就是字面意思:仓库是存放了很多镜像的大仓库.

我们可以通过push将镜像上传到共有仓库或者私有仓库,然后在另一台机子上通过pull从仓库中下载到本地.

简单的命令

在ubuntu安装docker服务:

$ sudo apt-get update
$ sudo apt-get install -y docker.io

查看docker版本:

docker version

启动docker服务:

sudo service docker start

如何下载镜像:

sudo docker pull ubuntu:12.04

相当于:
$ sudo docker pull registry.hub.docker.com/ubuntu:12.04 命令,
即从注册服务器 registry.hub.docker.com 中的 ubuntu 仓库来下载标记为 12.04 的镜像。
查看本地已有的镜像:

sudo docker images

创建一个容器并运行:(需要指定调用的镜像)

sudo docker run -t -i ubuntu:12.04 /bin/bash

注意:同一个镜像可以有多个容器
显示:
root@818a537ecc49:/#
表示已经启动 ubuntu:12.04这个容器的 bash应用
ubuntu代表仓库
12.04代表镜像版本

如果不指定具体的标记,即上面的12.04,则默认使用 latest 标记信息

退出容器:

exit

搜索镜像:

sudo docker search httpd

如何更新镜像?

首先需要创建一个容器:

jjc@jjczn:~$ sudo docker run -t -i ubuntu:12.04 /bin/bash
root@2bf155e4554a:/# 

这个时候容器id为2bf155e4554a
经过一些更改以后调用exit命令退出
这是我们经过修改的容器
然后采用命令提交镜像副本

sudo docker commit -m "update" -a="codingcoge" 2bf155e4554a jjc:newubuntu
[sudo] password for jjc: 
sha256:f4e8825292550752d91bdc3cc64d107efddcd17960d86ce17864d1f3d1b35337

m指定描述信息
a指定作者
2bf155e4554a代表容器id
jjc:newubuntu是更改后镜像的仓库和标识
成功后返回镜像的id属性

再查看一下镜像:

jjc@jjczn:~$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
jjc                 newubuntu           f4e882529255        6 minutes ago       104MB
hello-world         latest              fce289e99eb9        4 months ago        1.84kB
ubuntu              12.04               5b117edd0b76        2 years ago         104MB

原先的镜像也在,修改后的镜像也在.


如何把镜像保存到本地呢?

docker save -o codingcoge.tar jjc:newubuntu

本地载入镜像:

sudo docker load --input codingcoge.tar
或者
sudo docker load < codingcoge.tar

移除镜像:

docker rmi jjc:newubuntu

如何创建一个新的镜像?

利用 Dockerfile 创建镜像
这个就没看了直接跳过了


如何推送镜像到仓库?

申请Docker hub 帐号 ,并创建仓库
我也没看直接跳过了


未完待续

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章