docker 容器简单使用

使用docker之前我们需要先了解docker三大核心概念:镜像、容器、仓库

Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类

Docker面向对象
容器对象
镜像

本章介绍 docker 容器简单使用

注意: docker 所有涉及到id的操作,不用写全,前几位唯一id值就行,用过git的很好理解。

查看容器

docker ps
查看正在运行的容器

docker ps -a
查看所有的容器包括停止运行的容器

[root@hw-biz-alpha admin]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@hw-biz-alpha admin]# 
[root@hw-biz-alpha admin]# 
[root@hw-biz-alpha admin]# 
[root@hw-biz-alpha admin]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                         PORTS               NAMES
9f6b3cdf7b85        ubuntu              "/bin/bash"         About an hour ago   Exited (0) 10 seconds ago                          exciting_poincare
3f82741ff5d8        ubuntu              "/bin/bash"         About an hour ago   Exited (0) About an hour ago                       stoic_golick
c4e9e2cc5f6a        hello-world         "/hello"            4 hours ago         Exited (0) 4 hours ago                             xenodochial_kalam
5e1df23de3ff        hello-world         "/hello"            4 hours ago         Exited (0) 4 hours ago                             distracted_turing

创建容器

面向对象编程中,有了类以后我们就能创建对象了。同样的有了docker镜像后我们能用镜像创建容器

创建容器方法2个: docker create 和 docker run

  • docker create
    例如:
docker create -it --name ubuntu_test ubuntu
	创建了一个ubuntu镜像容器名字为ubuntu_test ,有输入功能的交互终端
	-it 的i是输入功能,t是交互终端tty
	--name ubuntu_test 创建的容器名 ubuntu_test
	注:后台运行参数-d
  • docker run 等于 docker create + docker start + 进入容器
    例如:
docker run -it --name ubuntu_test2 ubuntu /bin/bash

分3步:
1 docker create -it --name ubuntu_test2 ubuntu /bin/bash
创建ubuntu镜像容器名为ubuntu_test2,参数-it

2 docker start ubuntu_test2
启动容器ubuntu_test2

3 docker exec -it ubuntu_test2 /bin/bash
进入容器,打开有输入功能的交互终端,执行命令/bin/bash

[root@hw-biz-alpha admin]# docker run -it --name ubuntu_test2 ubuntu /bin/bash
root@f299d01444b8:/# 
root@f299d01444b8:/# exit
exit
[root@hw-biz-alpha admin]# 

启动容器

docker start 容器名或容器id

重启容器:
docker restart 容器名或容器id

进入容器

有多种方法,下面介绍2种 attach 和 exec

  • docker attach 容器id或容器名
    这个方法过时不好用,多个地方进入一个容器会同步显示,容易出现相互阻塞。
  • docker exec 容器id或容器名
    1.3版本后,增加新的进入容器工具 exec,使用完整例子如下:
[root@hw-biz-alpha admin]# docker create -it --name ubuntu_test3 ubuntu
cadaa5c958dad382c7dedad4949cd1f21f7df61c86b005dcd1060dd071164101
[root@hw-biz-alpha admin]# 
[root@hw-biz-alpha admin]# docker start cada
cada
[root@hw-biz-alpha admin]# 
[root@hw-biz-alpha admin]# docker exec -it cada /bin/bash
root@cadaa5c958da:/# 
root@cadaa5c958da:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@cadaa5c958da:/# 
root@cadaa5c958da:/# exit
exit
[root@hw-biz-alpha admin]# 
[root@hw-biz-alpha admin]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                 CREATED             STATUS                      PORTS               NAMES
cadaa5c958da        ubuntu              "/bin/bash"             53 seconds ago      Up 42 seconds                                   ubuntu_test3
9410b5c45d03        ubuntu              "--name ubuntu_test3"   47 minutes ago      Created                                         reverent_taussig
ccaa403e500f        ubuntu              "/bin/bash"             48 minutes ago      Exited (0) 48 minutes ago                       interesting_cray
d56e5d3391de        ubuntu              "/bin/bash"             2 hours ago         Created                                         ubuntu_test
3435344f56bf        ubuntu              "/bin/bash"             2 hours ago         Exited (0) 2 hours ago                          trusting_boyd
185b6c22453a        ubuntu              "-i"                    2 hours ago         Created                                         happy_rosalind
9f6b3cdf7b85        ubuntu              "/bin/bash"             4 hours ago         Exited (0) 3 hours ago                          exciting_poincare
3f82741ff5d8        ubuntu              "/bin/bash"             4 hours ago         Exited (0) 4 hours ago                          stoic_golick
c4e9e2cc5f6a        hello-world         "/hello"                6 hours ago         Exited (0) 6 hours ago                          xenodochial_kalam
5e1df23de3ff        hello-world         "/hello"                6 hours ago         Exited (0) 6 hours ago                          distracted_turing
[root@hw-biz-alpha admin]# 
[root@hw-biz-alpha admin]# docker stop cada
cada
[root@hw-biz-alpha admin]# 
注意:进入容器,需要容器在运行状态,否则会报错not running

还有其他的进入容器的工具,如:nsenter

结束容器

注意: 上面例子 docker run -it --name ubuntu_test2 ubuntu /bin/bash 中exit 并没有结束容器 。用docker ps -a 查看,会发现ubuntu_test2 状态还在运行。结束容器需要用docker stop 和 docker kill

docker stop 容器id
参数 -t或–time[=10] 表示先发一个SIGTERM 过10秒(如果没有指定多少秒,默认值10)后会再发一个SIGKILL信号强制结束

docker kill 容器id

删除容器

docker rm 容器id或容器名
参数:
-f 强制删除正在运行的容器
-l 删除容器连接,保留容器
-v 删除容器挂载的数据卷

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值