天天看点

Docker学习笔记--下篇

3.3 docker pull && docker push 

[AppleScript] 纯文本查看 复制代码

?

1

$ sudo docker pull ubuntu

# 下载官方 ubuntu docker 镜像,默认下载所有 ubuntu 官方库镜像

[AppleScript] 纯文本查看 复制代码

?

1

$ sudo docker pull ubuntu

:

14.0

4

# 下载指定版本 ubuntu 官方镜像

[AppleScript] 纯文本查看 复制代码

?

1

$ sudo docker push

192.1

68.0

.

100

:

5000

/

ubuntu

# 推送镜像库到私有源[可注册 docker 官方账户,推送到官方自有账户]

[AppleScript] 纯文本查看 复制代码

?

1

$ sudo docker push

192.1

68.0

.

100

:

5000

/

ubuntu

:

14.0

4

# 推送指定镜像到私有源

3.4 docker images  

[AppleScript] 纯文本查看 复制代码

?

1

$ sudo docker images

# 显示当前系统镜像,不包括过渡层镜像

[AppleScript] 纯文本查看 复制代码

?

1

$ sudo docker images

-

a

# 显示当前系统所有镜像,包括过渡层镜像

[AppleScript] 纯文本查看 复制代码

?

1

$ sudo docker images ubuntu

# 显示当前系统 docker ubuntu 库中的所有镜像

REPOSITORY                 TAG              IMAGE ID            CREATED             VIRTUAL SIZE

ubuntu                  12.04             ebe4be4dd427                    4 weeks ago                210.6 MB

ubuntu                  14.04              e54ca5efa2e9                    4 weeks ago                276.5MB

ubuntu                   14.04-ssh            6334d3ac099a                    7 weeks ago                383.2 MB

3.5 docker rmi  删除镜像

[AppleScript] 纯文本查看 复制代码

?

1

[[email protected] ~]

# docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

kiwenlau/hadoop     1.0                 a96b45d40715        11 days ago         729MB

ubuntu              14.04               c32fae490809        3 weeks ago         188MB

hello-world         latest              2cb0d9787c4d        2 months ago       1.85kB

kiwenlau/hadoop     <none>              a59a34125272        2 years ago         829MB

[AppleScript] 纯文本查看 复制代码

?

1

[[email protected] ~]

# docker rmi hello-world

Untagged: hello-world:latestUntagged: [email protected]:4b8ff392a12ed9ea17784bd3c9a8b1fa3299cac44aca35a85c90c5e3c7afacdcDeleted: sha256:2cb0d9787c4dd17ef9eb03e512923bc4db10add190d3f84af63b744e353a9b34Deleted: sha256:ee83fc5847cb872324b8a1f5dbfd754255367f4280122b4e2d5aee17818e31f5

3.6 docker run

分配名称并分配伪TTY( - name,-it)

[AppleScript] 纯文本查看 复制代码

?

1

2

3

4

5

6

7

$ docker

run

--name test -it debian

[email protected]

6

c

fe

130

dba

:

/

# exit 13

$ echo $?

13

$ docker ps

-

a | grep test

d

6

c

fe

130

dba        debian

:

7

"/bin/bash"

26

seconds

ago      Exited

(

13

)

17

seconds

ago

此示例使用debian:latest镜像运行名为test的容器。 -it指示Docker分配连接到容器stdin的伪TTY; 在容器中创建交互式bash shell。

在该示例中,通过输入exit 13退出bash shell。此退出代码被传递给docker run的调用者,并记录在测试容器的元数据中。

捕获容器ID(--cidfile)

[AppleScript] 纯文本查看 复制代码

?

1

$ docker

run

--cidfile /tmp/docker_test.cid ubuntu echo "test"

这将为控制台创建容器和打印测试。 cidfile标志使Docker尝试创建一个新文件并将容器ID写入其中。

如果文件已存在,Docker将返回错误。 Docker运行退出时,Docker将关闭此文件。

完整的容器功能( - 特权)

[AppleScript] 纯文本查看 复制代码

?

1

2

3

$ docker

run

-

t

-

i

--rm ubuntu bash

[email protected]

338942

ef

20

:

/

# mount -t tmpfs none /mnt

mount

:

permission denied

这不起作用,因为默认情况下,大多数潜在危险的内核功能都会被删除; 

包括cap_sys_admin(挂载文件系统所需)。 但是,--privileged标志将允许它运行:

[AppleScript] 纯文本查看 复制代码

?

1

2

3

4

5

$ docker

run

-

t

-

i

--privileged ubuntu bash

root@

50

e

3

f

57

e

16

e

6

:

/

# mount -t tmpfs none /mnt

root@

50

e

3

f

57

e

16

e

6

:

/

# df -h

Filesystem      Size  Used Avail Use% Mounted

on

none           

1.9

G    

1.9

G  

%

/

mnt

-privileged标志为容器提供了所有功能,它还解除了设备cgroup控制器强制执行的所有限制。 

换句话说,容器几乎可以完成主机可以执行的所有操作。 此标志存在以允许特殊用例,例如在Docker中运行Docker。