上一篇大致介绍了什么是
Docker和其安装(以Ubuntu为例)。这篇来说说,Docker的基本操作。
上一篇的演示中使用的都是默认登录了Root权限后的操作,而实际的开发运维情况下,我们一般极少使用Root权限,所以Docker提供了一个权限组,我们只需要把当前用户加入到Docker用户组中。
一共需要三条指令:
123 | $ sudo groupadd docker$ sudo gpasswd -a ${USER} docker$ sudo service docker restart |
|---|
三条指令的意思分别是:
docker用户组,一般会默认创建,提示已存在docker用户组docker服务示例如下

注意 重启服务后,仍需推出当前用户,重新登陆使用户权限生效!
本内容仅提供常用操作命令及参数,并非完整内容,具体可以参考官方文档或三方手册补全。
推荐参考菜鸟教程(RUNOOB.COM)的-Docker命令大全
1 | $ docker run IMAGE [COMMAND] [AGR…] |
|---|
run 在新容器中执行的命令IMAGE 启动容器所使用的操作系统的镜像[COMMAND] 容器启动后的运行命令[AGR] 命令参数示例:
一个执行单一指令的基本容器
1 | $ docker run ubuntu echo 'Hello world!' |
|---|

1 | $ docker run -i -t IMAGE /bin/bash |
|---|
-i 开启标准输入(交互) –interactive = true | false 默认是false -t 分配伪tty终端 –tty = true | false 默认是false示例:
1 | $ docker run -i -t ubuntu /bin/bash |
|---|

docker创建了一个允许使用bash交互的系统,当执行exit时推出,释放资源。
1 | $ docker ps [OPTIONS] |
|---|
-a 查看所有容器-l 查看最近创建的容器无参 正在运行的容器
1 | docker inspect NAME|ID [NAME|ID...] |
|---|
参数为 ps列举出的ID /NAME
执行后列举出容器的元信息,此处略过。
顺带一提:
前文中run指令中未提到,给容器指定名称的方法:
1 | $ docker run --name=自定义名 -i -t IMAGE /bin/bash |
|---|
很多时候并不需要不停的创建容器,而是可以将已经停止的容器重启来使用。
1 | $ docker start [-i] 容器名 |
|---|
-i 交互模式示例如下:

1 | $ docker rm 容器名 |
|---|
示例如下:

区别于交互式容器,守护式容器有如下特点:
推出交互模式,后台运行:
使用快捷键
Ctrl+P+Ctrl+Q

退出交互后,容器仍在运行,使用docker ps查看
直到执行exit,容器被释放
1 | $ docker attach 容器名 |
|---|
执行指令后重新进入容器交互界面,图略
直接使用run来创建交互式容器
1 | $ docker run -d IMAGE [COMMAND] [AGR…] |
|---|
区别于默认模式,-d参数表面启动后台驻留
示例:(这里通过编写一个循环shell来验证)
1 | $ docker run --name dc_test -d ubuntu /bin/sh -c "while true; do echo 'hello world'; sleep 1; done" |
|---|
执行后返回ID,截图略
1 | $ docker logs [-f] [-t] [--tail] 容器名 |
|---|
参数:
-f 保持跟踪日志变化并返回结果 –follows = true | false 默认为false-t 返回结果加上时间戳 –timestamps = true | false 默认为false--tail = all 返回结尾处制定数量的日志 不指定则返回所有示例:
1 | $ docker logs dc_test --tail 3 -t -f |
|---|
以前面创建的dc_test容器为例,先显示三行,并保持跟踪且显示时间戳:

注意:Ctrl+C退出(Linux下绝大部分操作通用嘛)
查看运行中容器的进程:
1 | $ docker top 容器名 |
|---|

Docker的理念是,在一个容器中使用一个服务,但仍然提供了在一个容器中运行多个进程的方法,从而实现对运行中容器进行维护,监控等操作。
1 | $ docker exec [-d] [-i] [-t] 容器名 [COMMAND] [AGR…] |
|---|
参数: -d/-i/-t 和前面run相同
1 | $ docker exec -i -t dc_test /bin/bash |
|---|
以前面创建的dc_test容器为例,为其添加一个bash终端进程,并使用top指令查看

1 | $ docker stop 容器名 |
|---|
发送停止信号给容器,等待容器的停止。
1 | $ docker kill 容器名 |
|---|
直接停止容器。