docker客户端、容器的使用、运行web应用

学习目标:

docker学习二、


学习内容:

1、Docker 客户端
2、容器使用
3、运行一个 web 应用


1、Docker 客户端

  • docker 命令来查看到 Docker 客户端的所有命令选项

在这里插入图片描述

例如我们要查看 docker stats 指令的具体使用方法:
在这里插入图片描述


2、容器使用

  • 获取镜像

docker pull ubuntu

[root@ecs-5ccd ~]# docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
6a5697faee43: Pull complete 
ba13d3bc422b: Pull complete 
a254829d9e55: Pull complete 
Digest: sha256:fff16eea1a8ae92867721d90c59a75652ea66d29c05294e6e2f898704bdb8cf1
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest
  • 启动容器

docker run -t -i ubuntu /bin/bash
-i: 交互式操作
-t: 终端
ubuntu: ubuntu 镜像
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash

[root@ecs-5ccd ~]# docker run -it ubuntu
root@66cfc3d27c46:/# 
  • 启动已经停止的容器

docker ps -a :查看所有的系统容器
docker start 容器ID : 启动指定容器

[root@ecs-5ccd ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS                         PORTS               NAMES
66cfc3d27c46        ubuntu              "/bin/bash"              About a minute ago   Exited (0) 14 seconds ago                          elated_dubinsky
...
[root@ecs-5ccd ~]# docker start 66cfc3d27c46
66cfc3d27c46
[root@ecs-5ccd ~]# 
  • 让容器后台运行

docker run -itd --name ubuntu-test :让容器在后台运行,默认不进入容器 加了 -d
参数默认不会进入容器,想要进入容器需要使用指令 docker exec

[root@ecs-5ccd ~]# docker run -itd --name ubuntu-test ubuntu /bin/bash
bdd1f108bcf6f980c29fbc3e9d384462bec4658426c12e64b3bb2a917ab092ed
  • 停止和重启容器、进入容器

docker stop 容器ID:停止容器
docker restart 容器ID:重启容器
docker attach 容器ID:进入容器
docker exec -it 容器ID /bin/bash :进入容器,且docker exec命令,因为此退出容器终端,不会导致容器的停止

[root@ecs-5ccd ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
bdd1f108bcf6        ubuntu              "/bin/bash"         10 minutes ago      Up 10 minutes                           ubuntu-test
[root@ecs-5ccd ~]# docker stop bdd1f108bcf6
bdd1f108bcf6
[root@ecs-5ccd ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@ecs-5ccd ~]# docker restart bdd1f108bcf6
bdd1f108bcf6
[root@ecs-5ccd ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
bdd1f108bcf6        ubuntu              "/bin/bash"         11 minutes ago      Up 3 seconds                            ubuntu-test
[root@ecs-5ccd ~]# docker exec -it bdd1f108bcf6 /bin/bash
root@bdd1f108bcf6:/# 
root@bdd1f108bcf6:/# exit
exit
[root@ecs-5ccd ~]# docker stop bdd1f108bcf6
bdd1f108bcf6
[root@ecs-5ccd ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
  • 导入导出容器

docker export 容器ID:导出容器
docker import - test/ubuntu:v1:导出容器 docker
import URL/或者其他目录:从某个目录或者URL导入容器
docker rm:删除容器

[root@ecs-5ccd ~]# docker run -itd --name ubuntu-test ubuntu /bin/bash
52e3d80848b914b90e6446cf5bb63b2c9b745ea97bcc1768d9bad90a443237cc
[root@ecs-5ccd ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
52e3d80848b9        ubuntu              "/bin/bash"         7 seconds ago       Up 6 seconds                            ubuntu-test
[root@ecs-5ccd ~]# docker export 52e3d80848b9 > ubuntu.tar
[root@ecs-5ccd ~]# ls -l
total 73500
-rw-r--r-- 1 root root 75261952 Nov  1 02:12 ubuntu.tar
[root@ecs-5ccd ~]# ls -l
total 73500
-rw-r--r-- 1 root root 75261952 Nov  1 02:18 ubuntu.tar
[root@ecs-5ccd ~]# cat ubuntu.tar | docker import - ubuntu:v1
sha256:cf5d814f496a8ef139337cdf91fe89f4b9c7c54f3c8d727159ab9170fa897326
[root@ecs-5ccd ~]# docker images
<none>              <none>              cf5d814f496a        8 minutes ago       72.9MB
[root@ecs-5ccd ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                           PORTS               NAMES
52e3d80848b9        ubuntu              "/bin/bash"              9 minutes ago       Exited (0) 15 seconds ago                            ubuntu-test
8b9ef714a162        ubuntu              "/bin/bash"              12 minutes ago      Exited (0) 11 minutes ago                            brave_burnell
66cfc3d27c46        ubuntu              "/bin/bash"              47 minutes ago      Exited (0) 41 minutes ago                            elated_dubinsky
2a0b740dc630        ubuntu:15.10        "/bin/sh -c 'while t…"   About an hour ago   Exited (137) About an hour ago                       tender_robinson
4abd23450956        ubuntu:15.10        "/bin/bash"              2 hours ago         Exited (0) About an hour ago                         eager_lovelace
64491d4c6b48        ubuntu:15.10        "/bin/echo 'Hello wo…"   2 hours ago         Exited (0) 2 hours ago                               dreamy_rosalind
a74b5f79d050        ubuntu:15.10        "/bin/echo 'Hello wo…"   2 hours ago         Exited (0) 2 hours ago                               priceless_davinci
9d0bd5e18765        hello-world         "/hello"                 2 hours ago         Exited (0) 2 hours ago                               peaceful_elgamal
[root@ecs-5ccd ~]# docker rm -f 2a0b740dc630
2a0b740dc630
[root@ecs-5ccd ~]# docker rm -f 4abd23450956
4abd23450956
[root@ecs-5ccd ~]# docker rm -f 64491d4c6b48
64491d4c6b48
[root@ecs-5ccd ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
52e3d80848b9        ubuntu              "/bin/bash"              11 minutes ago      Exited (0) 2 minutes ago                        ubuntu-test
8b9ef714a162        ubuntu              "/bin/bash"              13 minutes ago      Exited (0) 13 minutes ago                       brave_burnell
66cfc3d27c46        ubuntu              "/bin/bash"              49 minutes ago      Exited (0) 43 minutes ago                       elated_dubinsky
a74b5f79d050        ubuntu:15.10        "/bin/echo 'Hello wo…"   2 hours ago         Exited (0) 2 hours ago                          priceless_davinci
9d0bd5e18765        hello-world         "/hello"                 2 hours ago         Exited (0) 2 hours ago                          peaceful_elgamal

3、容器运行一个 web 应用

  • 在docker容器中运行一个 Python Flask 应用来运行一个web应用

docker pull training/webapp :导入webapp镜像 docker run -d -P
training/webapp python app.py:将镜像运行起来
-d:让容器在后台运行
-P:把容器内部使用的网络随机映射到主机上

[root@ecs-24bf ~]# docker pull training/webdpp python app.py
...
Pull an image or a repository from a registry
[root@ecs-24bf ~]# docker run -d -P training/webapp python app.py
...
Digest: sha256:06e9c1983bd6d5db5fba376ccd63bfa529e8d02f23d5079b8f74a616308fb11d
Status: Downloaded newer image for training/webapp:latest
d00c4621eab1b1403366608d00c3ec685a64d9980451d3fa2ac78d5c9ab83349
[root@ecs-24bf ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS                     NAMES
d00c4621eab1        training/webapp     "python app.py"     About a minute ago   Up About a minute   0.0.0.0:32768->5000/tcp   youthful_chatterjee
  • 从主机通过浏览器访问容器内的web,端口为5000
[root@ecs-24bf ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS                    NAMES
f1200f7de01b        training/webapp     "python app.py"     About a minute ago   Up About a minute   0.0.0.0:5000->5000/tcp   agitated_snyder

在这里插入图片描述

  • 停止web应用容器,重启web应用容器,查看web日志,查看网络端口,查看web应用进程,查看web应用,移除容器

docker stop 容器ID :停止web应用容器
docker start 容器ID :启动web应用容器
docker logs -f 容器ID:查看web应用容器的日志(-f是以容器内部标准输出)
docker port 容器ID :查看到容器的端口映射
docker top 容器名:查看web应用容器的进程
docker inspect 容器名:检查web应用
docker rm 容器名:移除web应用容器

[root@ecs-24bf ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES
f1200f7de01b        training/webapp     "python app.py"     20 seconds ago      Up 19 seconds       0.0.0.0:5000->5000/tcp    agitated_snyder
d00c4621eab1        training/webapp     "python app.py"     10 minutes ago      Up 10 minutes       0.0.0.0:32768->5000/tcp   youthful_chatterjee
[root@ecs-24bf ~]# docker stop d00c4621eab1
d00c4621eab1
[root@ecs-24bf ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS                    NAMES
f1200f7de01b        training/webapp     "python app.py"     About a minute ago   Up About a minute   0.0.0.0:5000->5000/tcp   agitated_snyder
[root@ecs-24bf ~]# docker start youthful_chatterjee 
youthful_chatterjee
[root@ecs-24bf ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES
f1200f7de01b        training/webapp     "python app.py"     12 minutes ago      Up 12 minutes       0.0.0.0:5000->5000/tcp    agitated_snyder
d00c4621eab1        training/webapp     "python app.py"     22 minutes ago      Up 14 seconds       0.0.0.0:32769->5000/tcp   youthful_chatterjee
[root@ecs-24bf ~]# docker logs -f d00c4621eab1
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
[root@ecs-24bf ~]# docker port youthful_chatterjee
5000/tcp -> 0.0.0.0:32769
[root@ecs-24bf ~]# docker top youthful_chatterjee
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                13178               13162               0                   15:49               ?                   00:00:00            python app.py
[root@ecs-24bf ~]# docker inspect youthful_chatterjee
[
   {
       "Id": "d00c4621eab1b1403366608d00c3ec685a64d9980451d3fa2ac78d5c9ab83349",
       "Created": "2020-11-01T07:26:41.635886549Z",
       "Path": "python",
       "Args": [
           "app.py"
       ],
       "State": {
           "Status": "running",
           "Running": true,
...
...
...
[root@ecs-24bf ~]# docker stop youthful_chatterjee
youthful_chatterjee
[root@ecs-24bf ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
f1200f7de01b        training/webapp     "python app.py"     16 minutes ago      Up 16 minutes       0.0.0.0:5000->5000/tcp   agitated_snyder
[root@ecs-24bf ~]# docker rm youthful_chatterjee
youthful_chatterjee
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值