(二)Docker run 运行第一个容器

获取一个镜像

Docker是通过加载镜像来运行的,镜像可以自己制作,也可以 从Docker Hub上获取,Docker Hub是Docker官方的Registry(镜像管理系统),https://hub.docker.com/ 可以自己到官网查看。从官网获取镜像比较慢,我们也可以自己搭建Registry,这个我们后面会讲到。我们先看一下如何从Docker Hub上获取一个镜像。

ubuntu@ubuntu:~$ docker pull centos
Using default tag: latest
latest: Pulling from library/centos
a3ed95caeb02: Pull complete 
196355c4b639: Pull complete 
Digest: sha256:381f21e4c7b3724c6f420b2bcfa6e13e47ed155192869a2a04fa10f944c78476
Status: Downloaded newer image for centos:latest

下载速度要看大家的网速了,毕竟是从国外下载,需要耐心等待一会。国内还没有合适的Registry,阿里搭了一个,但主要是宣传自己产品的,其它镜像也是链接自Docker Hub。

如何查看我们刚下载的镜像

ubuntu@ubuntu:~$ docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              d0e7f81ca65c        6 days ago          196.6 MB

我们看到这个镜像来自 centos 仓库, 标签是 latest ,镜像ID是 d0e7f81ca65c,创建于6天前,大小是196.6MB。
关于镜像我们会在后面做详细介绍,这里只要能下载成功即可。

运行第一个镜像

按照国际惯例我们使用Docker输出“Hello World!”:

ubuntu@ubuntu:~$ docker run centos echo "Hello World"
Hello World

我们看到容器运行完就自动退出了,如果我们想看一下容器里面是什么样怎么办呢?

ubuntu@ubuntu:~$ docker run -i -t centos /bin/bash
[root@a3d7b15ae4be /]# echo "Hello World"
Hello World
[root@a3d7b15ae4be /]# whoami
root
[root@a3d7b15ae4be /]# exit
exit
ubuntu@ubuntu:~$ 

我们会发现在容器内运行命令跟ssh到一台主机上非常类似,但Docker的启动速度是非常快的,官方声称是不到1秒,确实这是Docker的一大优势。
要退出当前容器使用exit命令即可。

查看容器状态

docker ps 查看正在运行的容器

ubuntu@ubuntu:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
8cab60c8b548        centos              "/bin/bash"                5 seconds ago       Up 4 seconds                            cranky_kilby

docker ps -a 查看所有运行过的容器

ubuntu@ubuntu:~$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                          PORTS               NAMES
8cab60c8b548        centos              "/bin/bash"         57 seconds ago       Up 56 seconds                                       cranky_kilby
20af5b40566a        centos              "echo Hello"        About a minute ago   Exited (0) About a minute ago                       focused_varahamihira
a3d7b15ae4be        centos              "/bin/bash"         3 minutes ago        Exited (0) 3 minutes ago                            compassionate_kilby

关闭容器

ubuntu@ubuntu:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
b6f3d3bee4f9        centos               "/bin/bash"                 9 seconds ago        Up 8 seconds                                    test
ubuntu@ubuntu:~$ docker stop test

test
ubuntu@ubuntu:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
fefab308bb91        centos              "/bin/bash"                 7 seconds ago       Up 6 seconds                            focused_leakey
ubuntu@ubuntu:~$ docker stop fefa

fefa

如果容器在后台运行,可以使用docker stop关闭,后面的参数可以跟容器名也可以是容器ID,容器ID比较长可以只写前几位。

删除容器

容器退出后并不会自动删除,如果想要删除已经退出的容器,可以使用docker rm 命令,后面参数可以是容器名或容器ID。

ubuntu@ubuntu:~$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                            PORTS               NAMES
fefab308bb91        centos              "/bin/bash"         About a minute ago   Exited (137) About a minute ago                       focused_leakey
b6f3d3bee4f9        centos              "/bin/bash"         3 minutes ago        Exited (137) 2 minutes ago                            test
8cab60c8b548        centos              "/bin/bash"         6 minutes ago        Exited (137) 4 minutes ago                            cranky_kilby
20af5b40566a        centos              "echo Hello"        7 minutes ago        Exited (0) 7 minutes ago                              focused_varahamihira
a3d7b15ae4be        centos              "/bin/bash"         9 minutes ago        Exited (0) 9 minutes ago                              compassionate_kilby
ubuntu@ubuntu:~$ 
ubuntu@ubuntu:~$ docker rm fefa
fefa
ubuntu@ubuntu:~$ docker rm test
test
ubuntu@ubuntu:~$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                       PORTS               NAMES
8cab60c8b548        centos              "/bin/bash"         8 minutes ago       Exited (137) 5 minutes ago                       cranky_kilby
20af5b40566a        centos              "echo Hello"        8 minutes ago       Exited (0) 8 minutes ago                         focused_varahamihira
a3d7b15ae4be        centos              "/bin/bash"         10 minutes ago      Exited (0) 10 minutes ago                        compassionate_kilby

一个一个的删除还是比较麻烦,如果想删除所有退出的容器,可以使用如下命令。

ubuntu@ubuntu:~$ docker rm -v $(docker ps -aq -f status=exited)
8cab60c8b548
20af5b40566a
a3d7b15ae4be
ubuntu@ubuntu:~$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
ubuntu@ubuntu:~$ 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值