03-docker系列-docker容器的基本操作

声明:本文乃“运维家”原创,转载请注明出处,更多内容请关注公众号“运维家”。

主旨

本文主要介绍下docker容器的基本操作。

环境

linux环境
ddocker容器

总则

1、可以用镜像生成对应运行的容器,一个镜像可以生成多个容器。
2、容器里面的系统和宿主机是相互独立的。
3、容器的删除和崩溃,不会影响到宿主机。

开启路由转发

[yunweijia@localhost ~]$ sudo vim /etc/sysctl.conf 
# 最后一行新增这个配置
net.ipv4.ip_forward = 1
[yunweijia@localhost ~]$ sudo sysctl -p
net.ipv4.ip_forward = 1
[yunweijia@localhost ~]$

前台运行容器

语法:docker run -it 镜像:版本号 bash环境
  参数解释:
    -i:表示交互式
    -t:表示打开一个shell窗口
实例:
  [yunweijia@localhost ~]$ sudo docker run -it centos:7 /bin/bash
  [root@325a97085854 /]# pwd
  /
  [root@325a97085854 /]#

这个时候我们输入exit 就退出这个镜像了,随之这个镜像也停止运行了,这种情况生产环境肯定是不被允许的,下面我们会说下如何让镜像后台保持运行。

查看镜像运行情况

语法:docker ps [-a]
  参数解释:默认查看处于运行状态下的容器,[-a]表示查看所有状态的容器
实例:
  # 输入docker ps的时候,看不到容器,因为都是停止状态的
  [yunweijia@localhost ~]$ sudo docker ps
  CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
  # 加上参数 -a 之后,发现有两个处于exited状态的容器
  [yunweijia@localhost ~]$ sudo docker ps -a
  CONTAINER ID   IMAGE         COMMAND       CREATED         STATUS                       PORTS     NAMES
  325a97085854   centos:7      "/bin/bash"   8 minutes ago   Exited (127) 5 minutes ago             youthful_kowalevski
  2d5c7e25517f   hello-world   "/hello"      43 hours ago    Exited (0) 43 hours ago                objective_rhodes
  [yunweijia@localhost ~]$

查看容器详细信息

语法:docker inspect 容器ID
  容器ID:即使用docker ps查看出来结果的第一列,就是容器ID
实例:
  [yunweijia@localhost ~]$ sudo docker inspect 325a97085854

查看容器日志

语法:docker logs 容器ID
  容器ID:即使用docker ps查看出来结果的第一列,就是容器ID
实例:
  [yunweijia@localhost ~]$ sudo docker logs 325a97085854

后台运行容器

需要有永久运行的程序,否则程序一旦停止,容器也将随之停止。

语法:docker run -d 镜像:版本号 bash环境 运行的程序
实例:
  # 后面就加了一个永久运行的脚本
  [yunweijia@localhost ~]$ sudo docker run -d centos:7 /bin/bash -c "while true;do echo yunweijia; sleep 5; done"
  [yunweijia@localhost ~]$ sudo docker ps
  CONTAINER ID   IMAGE      COMMAND                  CREATED          STATUS          PORTS     NAMES
  b47b053f66c2   centos:7   "/bin/bash -c 'while…"   39 seconds ago   Up 38 seconds             goofy_mendeleev
  [yunweijia@localhost ~]$

进入后台运行的容器

语法:docker exec -it 容器ID bash环境
实例:
  [yunweijia@localhost ~]$ sudo docker ps
  CONTAINER ID   IMAGE      COMMAND                  CREATED         STATUS         PORTS     NAMES
  b47b053f66c2   centos:7   "/bin/bash -c 'while…"   2 minutes ago   Up 2 minutes             goofy_mendeleev
  [yunweijia@localhost ~]$ sudo docker exec -it b47b053f66c2 /bin/bash
  [root@b47b053f66c2 /]#

停止后台容器

语法:docker stop 容器ID  # 正常停止
  docker kill 容器ID  # 强制停止
实例:
  [yunweijia@localhost ~]$ sudo docker ps
  CONTAINER ID   IMAGE      COMMAND                  CREATED         STATUS         PORTS     NAMES
  b47b053f66c2   centos:7   "/bin/bash -c 'while…"   5 minutes ago   Up 5 minutes             goofy_mendeleev
  [yunweijia@localhost ~]$ sudo docker stop b47b053f66c2
  b47b053f66c2
  # 查不到了
  [yunweijia@localhost ~]$ sudo docker ps
  CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
  # 可以看到变成停止状态了
  [yunweijia@localhost ~]$ sudo docker ps -a
  CONTAINER ID   IMAGE         COMMAND                  CREATED          STATUS                        PORTS     NAMES
  b47b053f66c2   centos:7      "/bin/bash -c 'while…"   6 minutes ago    Exited (137) 8 seconds ago              goofy_mendeleev
  325a97085854   centos:7      "/bin/bash"              26 minutes ago   Exited (127) 22 minutes ago             youthful_kowalevski
  2d5c7e25517f   hello-world   "/hello"                 43 hours ago     Exited (0) 43 hours ago                 objective_rhodes
  [yunweijia@localhost ~]$

启动已停止容器

语法:docker start 容器ID
实例:
  [yunweijia@localhost ~]$ sudo docker start b47b053f66c2
  b47b053f66c2
  [yunweijia@localhost ~]$ sudo docker ps
  CONTAINER ID   IMAGE      COMMAND                  CREATED         STATUS         PORTS     NAMES
  b47b053f66c2   centos:7   "/bin/bash -c 'while…"   7 minutes ago   Up 3 seconds             goofy_mendeleev
  [yunweijia@localhost ~]$

删除容器

语法:docker rm 容器ID  # 正常删除
  docker rm -f 容器ID  # 强制删除
  docker rm -f 容器ID 容器ID  # 批量删除
  注意:只能删除处于停止状态的容器
实例:
  [yunweijia@localhost ~]$ sudo docker ps -a
  CONTAINER ID   IMAGE         COMMAND                  CREATED          STATUS                        PORTS     NAMES
  b47b053f66c2   centos:7      "/bin/bash -c 'while…"   8 minutes ago    Up About a minute                       goofy_mendeleev
  325a97085854   centos:7      "/bin/bash"              28 minutes ago   Exited (127) 25 minutes ago             youthful_kowalevski
  2d5c7e25517f   hello-world   "/hello"                 43 hours ago     Exited (0) 43 hours ago                 objective_rhodes
  [yunweijia@localhost ~]$ sudo docker rm 2d5c7e25517f
  2d5c7e25517f
  [yunweijia@localhost ~]$ sudo docker ps -a
  CONTAINER ID   IMAGE      COMMAND                  CREATED          STATUS                        PORTS     NAMES
  b47b053f66c2   centos:7   "/bin/bash -c 'while…"   9 minutes ago    Up About a minute                       goofy_mendeleev
  325a97085854   centos:7   "/bin/bash"              29 minutes ago   Exited (127) 25 minutes ago             youthful_kowalevski
  [yunweijia@localhost ~]$

至此,本文结束。

下一章:commit构建自定义镜像

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值