文档章节

Docker笔记3——容器命令(上)

HappyBKs
 HappyBKs
发布于 02/17 23:31
字数 1485
阅读 11
收藏 1

 

新建并启动容器

docker run

docker run [OPTIONS] IMAGE [COMMEND] [ARG...]

OPTIONS:

--name=[容器新名字]  :为容器指定一个名称

-d:后台运行容器,并返回容器ID,也即启动守护式容器

-i:以交互模型运行容器,通常与-t同时使用

-t:为容器重新分配一个伪输入终端,通常与-i同时使用

-P:随机端口映射

-p:指定端口映射,有以下四种格式:

ip:host_port:container_port

ip:container_port

host_port:container_port

container_port

 

新建启动运行一个centos镜像的实例(即容器),并且进入该容器进行交互:

neil@linux-famw:~> docker run -it centos
[root@6c8275123500 /]# 
[root@6c8275123500 /]# 
[root@6c8275123500 /]# ll
total 28
-rw-r--r--   1 root root 12076 Dec  5 01:37 anaconda-post.log
lrwxrwxrwx   1 root root     7 Dec  5 01:36 bin -> usr/bin
drwxr-xr-x   5 root root   360 Feb 17 14:06 dev
drwxr-xr-x   1 root root  1978 Feb 17 14:06 etc
drwxr-xr-x   1 root root     0 Apr 11  2018 home
lrwxrwxrwx   1 root root     7 Dec  5 01:36 lib -> usr/lib
lrwxrwxrwx   1 root root     9 Dec  5 01:36 lib64 -> usr/lib64
drwxr-xr-x   1 root root     0 Apr 11  2018 media
drwxr-xr-x   1 root root     0 Apr 11  2018 mnt
drwxr-xr-x   1 root root     0 Apr 11  2018 opt
dr-xr-xr-x 269 root root     0 Feb 17 14:06 proc
dr-xr-x---   1 root root   120 Dec  5 01:37 root
drwxr-xr-x   1 root root   124 Dec  5 01:37 run
lrwxrwxrwx   1 root root     8 Dec  5 01:36 sbin -> usr/sbin
drwxr-xr-x   1 root root     0 Apr 11  2018 srv
dr-xr-xr-x  13 root root     0 Feb 17 14:06 sys
drwxrwxrwt   1 root root   140 Dec  5 01:37 tmp
drwxr-xr-x   1 root root   106 Dec  5 01:36 usr
drwxr-xr-x   1 root root   160 Dec  5 01:36 var
[root@6c8275123500 /]# 
[root@6c8275123500 /]# 
[root@6c8275123500 /]# 

从上面可以看到我们进入了这个容器centos实例,root用户,6c8275123500是容器id,这里将这个id作为了容器内的主机名。

我们在外部通过docker ps查看容器进程。

neil@linux-famw:~> docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
6c8275123500        centos              "/bin/bash"         3 minutes ago       Up 3 minutes                            elated_brown
neil@linux-famw:~> 

另一边,如果我们在容器内 希望退出容器 并停止该容器,则输入exit。

[root@6c8275123500 /]# 
[root@6c8275123500 /]# 
[root@6c8275123500 /]# exit
exit
neil@linux-famw:~> 
neil@linux-famw:~> 

 

查看运行的容器

docker ps [OPTIONS]

-a  列出当前所有正在运行的容器 和 历史上运行过的容器

-l  显示最近创建的容器

-n  显示最近n个创建的容器。包括正在运行的和已经停止的。

-q  静默模式,仅显示容器号。多用于与其他命令组合使用,以方便批量处理容器。

--no-trunc  不截断输出。

(本文出自oschina博主happyBKs的博文:https://my.oschina.net/happyBKs/blog/3011199)

示例如下:单个字母的参数可以连写,比如-l -q可以写成-lq

neil@linux-famw:~> docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
neil@linux-famw:~> 
neil@linux-famw:~> 
neil@linux-famw:~> 
neil@linux-famw:~> docker ps -l
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
6c8275123500        centos              "/bin/bash"         5 minutes ago       Exited (0) 39 seconds ago                       elated_brown
neil@linux-famw:~> 
neil@linux-famw:~> docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
6c8275123500        centos              "/bin/bash"         5 minutes ago       Exited (0) 46 seconds ago                       elated_brown
neil@linux-famw:~> 
neil@linux-famw:~> 
neil@linux-famw:~> 
neil@linux-famw:~> docker ps -n 3
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                          PORTS               NAMES
6c8275123500        centos              "/bin/bash"         6 minutes ago       Exited (0) About a minute ago                       elated_brown
neil@linux-famw:~> 
neil@linux-famw:~> docker ps -lq
6c8275123500
neil@linux-famw:~> 

 

 

 

我们回过来看看容器内部的情况,则个centos没有装jdk,预装了python2。这与我的本地宿主机不同。

neil@linux-famw:~> docker run -it --name=centos-01 centos
[root@94769f89ea30 /]# 
[root@94769f89ea30 /]# java -version
bash: java: command not found
[root@94769f89ea30 /]# python    
Python 2.7.5 (default, Oct 30 2018, 23:45:53) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
[root@94769f89ea30 /]# 

查看容器列表,可以看到容器id、对应的镜像名称、容器名称、创建容器的时间、容器状态等。

neil@linux-famw:~> docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
94769f89ea30        centos              "/bin/bash"         11 seconds ago      Up 9 seconds                            centos-01
neil@linux-famw:~> 

 

用不停止容器的方式推出容器交互模式

Ctrl + P, Q   从容器内以不关闭容器的方式退回宿主机。这与在容器内输入exit不同,exit是不仅推出容器而且关闭结束容器。

[root@94769f89ea30 /]# 
[root@94769f89ea30 /]# neil@linux-famw:~> 
neil@linux-famw:~> 

这时候可以看到这个容器还活着呢。

neil@linux-famw:~> docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
94769f89ea30        centos              "/bin/bash"         10 minutes ago      Up 10 minutes                           centos-01
neil@linux-famw:~> 

 

启动一个已经关闭的容器

docker start [容器id]

如果我们想把一个容器启动,比如将刚才已经关闭的那个容器启动:

neil@linux-famw:~> docker ps -n 2
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
94769f89ea30        centos              "/bin/bash"         12 minutes ago      Up 12 minutes                                   centos-01
6c8275123500        centos              "/bin/bash"         30 minutes ago      Exited (0) 25 minutes ago                       elated_brown
neil@linux-famw:~> 
neil@linux-famw:~> 
neil@linux-famw:~> docker start 6c8275123500
6c8275123500
neil@linux-famw:~> 
neil@linux-famw:~> docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
94769f89ea30        centos              "/bin/bash"         12 minutes ago      Up 12 minutes                           centos-01
6c8275123500        centos              "/bin/bash"         30 minutes ago      Up 9 seconds                            elated_brown
neil@linux-famw:~> 

 

重启容器

docker restart

重启一个容器也类似:

neil@linux-famw:~> docker restart 94769f89ea30
94769f89ea30
neil@linux-famw:~> docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
94769f89ea30        centos              "/bin/bash"         18 minutes ago      Up 3 seconds                            centos-01
6c8275123500        centos              "/bin/bash"         35 minutes ago      Up 5 minutes                            elated_brown
neil@linux-famw:~> 

 

 

关闭停止容器

温柔型:docker stop [容器id或者容器名]

强制型:docker kill [容器id或者容器名]

neil@linux-famw:~> docker stop 94769f89ea30
94769f89ea30
neil@linux-famw:~> 
neil@linux-famw:~> docker kill 6c8275123500
6c8275123500
neil@linux-famw:~> 
neil@linux-famw:~> docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
neil@linux-famw:~> 

前者慢,后者快;前者类似正常关机,后者类似拔电源。

 

neil@linux-famw:~> docker ps -n 2
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                            PORTS               NAMES
94769f89ea30        centos              "/bin/bash"         25 minutes ago      Exited (137) About a minute ago                       centos-01
6c8275123500        centos              "/bin/bash"         43 minutes ago      Exited (137) About a minute ago                       elated_brown
neil@linux-famw:~> 
neil@linux-famw:~> docker rm 6c8275123500
6c8275123500
neil@linux-famw:~> docker ps -n 2
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                       PORTS               NAMES
94769f89ea30        centos              "/bin/bash"         26 minutes ago      Exited (137) 2 minutes ago                       centos-01
neil@linux-famw:~> 

 

neil@linux-famw:~> docker rm -f 94769f89ea30
94769f89ea30
neil@linux-famw:~> 

 

删除全部容器

neil@linux-famw:~> docker rm -f $(docker ps -a -q)

 

neil@linux-famw:~> docker ps -a -q | xargs docker rm -f

xargs为linux命令可变参数

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
HappyBKs

HappyBKs

粉丝 651
博文 306
码字总数 481268
作品 0
浦东
程序员
私信 提问
Docker笔记2——docker镜像命令

先了解一个例子: 了解镜像、容器等在使用时的机制: docker run hello-world 本地先看有没有hello-world的容器;如果没有该容器,再看本地有没有hello-world的镜像;如果没有该镜像,就到d...

HappyBKs
02/17
0
0
Docker容器技术 学习笔记汇总

“如果你不出去走走,你就会以为这就是全世界。” 一直在嵌入式领域,这次遇到Docker算是长了见识。刚好公司同事们对这块了解地不多,那就把Docker容器技术的学习梳理成系列笔记,让其他伙伴少...

iotisan
2017/10/20
0
0
Docker笔记4——容器命令(下)

启动守护式容器 使用某个镜像的后台模式启动一个容器 docker run -d [镜像名] 以我们现有的centos镜像为例,我们发现使用这种模式启动运行一个镜像返回了实例信息,说明成功了。但是我们没有...

HappyBKs
02/24
0
0
Docker学习笔记——构建镜像

Docker有两种构建镜像的方式: 使用docker commit命令; 使用Dockerfile文件; 以下分别介绍这两种方式。 1.docker commit 使用命令创建镜像的步骤如下: 1. 运行容器; 2. 对容器进行修改;...

dendi_hust
2017/12/13
0
0
Docker学习笔记(二):容器

概述:通过Docker构建、运行和发布镜像 (一)新的开发环境: 在过去的应用开发方式中,我们要同时配置开发环境和生产环境。而使用Docker,我们只需要获得一个运行环境的镜像,应用的代码、依...

u013637262
2018/05/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如果让你写一个消息队列,该如何进行架构设计?

面试题 如果让你写一个消息队列,该如何进行架构设计?说一下你的思路。 面试官心理分析 其实聊到这个问题,一般面试官要考察两块: 你有没有对某一个消息队列做过较为深入的原理的了解,或者...

李红欧巴
今天
4
0
错题

无知的小狼
今天
2
0
PowerShell因为在此系统中禁止执行脚本的解决方法

参考:window系统包管理工具--chocolatey 报错提示: & : 无法加载文件 C:\Users\liuzidong\AppData\Local\Temp\chocolatey\chocInstall\tools\chocolateyInstall.ps1,因为在此系统上禁止运...

近在咫尺远在天涯
今天
3
0
TP5 跨域请求处理

https://blog.csdn.net/a593706205/article/details/81774987 https://blog.csdn.net/wyk9916/article/details/82315700...

15834278076
今天
3
0
深入理解java虚拟机-Java内存区域与内存溢出异常

深入理解java虚拟机 Java内存区域与内存溢出异常 运行时数据区域 程序计数器 线程私有,内存小,是当前线程执行的字节码行号指示器,字节码解释器通过改变这个计数器的值来选取下一条需要执行...

须臾之余
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部