《第一本Docker书》笔记

2019-11-14  本文已影响0人  Azur_wxj

初步

确认Docker信息:

docker info

镜像

查看镜像

docker images

镜像搜索

docker search ubuntu

获取镜像

docker pull ubuntu

构建镜像

容器

创建容器

可交互式容器

启动可交互式容器:

docker run -i -t ubuntu /bin/bash
  1. -t -i标志保证了启动的容器是一个可交互式的:-i标志保证容器中STDIN 是开启的;-t说明创建的容器分配一个伪tty终端。
  2. ubuntu表示一个基础镜像,容器是基于此创建的
  3. /bin/bash表示容器启动后将运行怎样的命令

守护式容器

守护式容器类似于后台进程或服务,不像是一个前台会话进程需要时刻等待键盘输入命令进行交互式会话。

docker run --name you_container_name -d  ubuntu .... 

使用-d来指示该容器是一个守护石(运行于后台的)容器。

容器的命名

docker run --name your_container_name -it ubuntu /bin/bash

给容器命名(名称为your_container_name),此后可以用容器名来代替容器,因此容器名必须是唯一的。如果没有指定容器名,则会随机分配一个容器名。

挂载本地目录到容器之中

docker run -it -v /host/dir:/container/dir ubuntu64 /bin/bash

查看容器

docker ps -a

其中-a选项表示显示所有容器,包括停止和正在运行的;若无此项,表示只显示正在运行的容器。

docker ps -l

列出最后一次运行的容器。

docker ps -n 5

列出最后(使用的)5个容器,不管是正在运行还是已经停止。这里5可以指定为别的数字。

docker insepct your_container_name

表示获取容器详细信息,包括配置信息、名称、命令、网络配置等,以JSON格式。

启动容器

启动已经停止的容器

docker start your_container_name

可以使用容器名或者容器ID来指代该容器。容器ID只要输入足以确定该容器的数字位数即可。
也可以使用:

docker restart your_container_name

注意!
使用docker start命令只是启动了容器,并且会沿用当时docker run命令时指定的参数来运行。假若参数指定容器启动时是可交互的shell界面,docker start无法切换到shell界面,还需要使用docker attach命令来切换

容器附着

Docker容器重新启动的时候, 会沿用docker run命令时指定的参数来运行, 因此,如果我们容器重新启动后是运行一个交互式会话shell,则要用docker attach命令, 重新附着到该容器的会话上:

docker attach your_container_name

容器的自动重启

由于某种错误而导致容器停止运行,我们希望创建的容器可以按照指定的方式来自动重启

docker run --restart=always  --name your_container_name -d ubuntu ...

容器内进程的操作

查看正在运行的容器内的进程

docker top yout_container_name

在容器内启动新进程

在Docker命令行界面可以直接命令某个容器启动一个新的进程

docker exec -d your_container_name touch /etc/new_config_file

这表示,使命为your_container_name的正在运行的容器执行命令touch /etc/new_config_file(即启动进程执行命令)。-d表示这个进程是后台进程

docker exec -t -i your_container_name /bin/bash

表示在your_container_name容器内部启动一个进程/bin/bash-i -t(或者合起来-it)指示是一个可交互进程。

容器的停止

docker stop your_container_name
docker kill your_container_name

docker stop会向Docker容器进程发送SIGTERM信号。如果想快速停止某个容器,也可以使用docker kill命令来向容器进程发送SIGKILL信号。

删除容器

docker rm your_container_name

注意!正在运行中的容器是无法删除的。

可以使用以下命令一次性删除所有的容器

docker rm `docker ps -a -q`

-a标志代表列出所有(all)容器,而-q标志则表示只需要返回容器的ID而 不会 返回容器的其他信息。

上一篇下一篇

猜你喜欢

热点阅读