Docker快速入门指南(2)

format: docker search TERM demo: docker search ubuntu

NAMEDESCRIPTIONSTARSOFFICIALAUTOMATED
ubuntu   Ubuntu is a ...   7076   [OK]      
dorowu/ubuntu-desktop-lxde-vnc   Ubuntu with openssh-server and NoVNC   156       [OK]  
docker pull

docker pull命令用于从远程下载镜像,可以通过NAME:TAG或NAME@DIGEST的格式来指明目标镜像。

当只提供了镜像NAME时,默认下载tag为latest的镜像。

$docker pull ubuntu $docker pull ubuntu:16.04 $docker pull ubuntu@sha256:fbaf303d18563e57a3c1a0005356ad102509b60884f3aa89ef9a90c0ea5d1212

NAME也可以是私有仓库中一个REPOSITORY的URI。

docker rmi

docker rmi用于删除镜像,可以使用IMAGE ID或REPOSITORY:TAG来标记一个容器。

容器 docker run

docker run命令用于新建一个容器并启动, 是最重要的和最常用的docker命令之一。

format: docker run IMAGE CMD ARGS

docker run命令的标准执行流程包括:

检查本地是否包含指定的镜像,若不存在就从公有仓库下载

在只读的基础镜像层上挂载一个可读写层,创建容器的文件系统

根据文件系统启动容器

将容器与宿主机桥接

用指定的身份登录容器,并在指定目录下执行CMD ARGS参数指定的命令

在命令执行完成后关闭容器

docker容器在命令执行完毕后会自动退出, 容器的生存周期仅决定于执行命令所需的时间。 如果在容器中执行bash等长期运行的命令, 就可以保证容器长期运行。

docker run命令默认会把标准输出流(stdout)重定向到终端,并与容器保持连接状态(attach)。

在attach状态下, 容器退出之前doceker run命令不会返回,而是在终端回显容器的输出。 若发出kill信号(如ctrl + c快捷键)杀死docekr run, 那么容器也会提前退出。

容器对文件系统的修改在可读写层,不会对镜像产生影响, 除非使用docker commit创建新的镜像层。 容器退出后其文件系统仍将保存在磁盘中,下次启动后会保留所有修改。

打开终端

docker run命令默认将容器的标准输出流重定向到终端, 但是没有将终端的标准输入流(stdin)重定向到容器。 也就是说,容器无法���收我们在终端中输入的命令。

使用-i或--interactive选项会保持容器的输入流(stdin)打开,即使docker run不与容器保持attach状态。

docker run -i ubuntu bash命令可以打开一个ubuntu终端, 该终端也可以接受我们输入的指令。

和标准的Linux系统一样,docker镜像也为用户指定了默认终端。 使用-t或--tty选项会打开一个虚拟终端(Pseudo-TTY)。

也就是说,docker run -it ubuntu命令可以轻松地打开一个可交互ubuntu虚拟环境。

后台运行

docker run命令默认与容器保持连接状态(attach), -d或--detach选项可以与容器断开连接。 docker run命令在显示容器ID后立即返回,容器则会在后台运行。

上文redis-server的示例即使用了-d选项, docker run立即返回, redis-server在后台继续运行。

$ docker run -p 6379:6379 -d redis 3a5748eef653 $ redis-cli 127.0.0.1:6379>

端口映射

如上文中redis-server示例, 我们经常使用docker容器提供服务,因此需要docker容器监听宿主机的某个端口。

docker run -p 6379:6379 -d redis将对宿主机TCP6379端口的访问映射到容器的TCP6379端口。

-p 6379:6379/udp则可以映射udp访问(虽然对redis-server来说没有意义)。 多个-p选项可以映射多个端口docker run -p 80:8080 -p 8080:8081 -d my_server.

端口映射是将对宿主机某个端口的访问映射到容器的某个端口上, 容器访问宿主机端口不需要配置端口映射。


挂载数据卷

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/3ca3f0b8ec255e6a4b4a35f1c7319039.html