docker-容器入门-运行一个web应用

运行一个web应用

docker pull training/webapp
docker run -d -P training/webapp python app.py

-d是后台运行容器并打印容器ID
-P是将容器内部使用的网络端口随机映射到主机端口
-p则是要带参数的,指定端口的映射方法。下面是可以带的几种参数:

  1. 端口到端口:比如32769:5000就是容器的5000端口映射到主机的32769端口。
  2. 网址到端口:比如127.0.0.1:5001:5000,这样就可以通过访问127.0.0.1:5001访问容器的5000端口了
  3. 绑定UDP端口:比如127.0.0.1:5000:5000/udp

在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:
docker attach 容器ID/Names
docker exec 容器ID/Names
推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。

查看当前运行的容器

Container ID和Names指的是同一个东西,所以每次指定容器时,二者任选一即可。
在这里插入图片描述
Docker开放了端口5000(默认的Python Flask端口),映射到主机端口32768上。那么打开http://0.0.0.0:32768可以看到一行Hello world!

关闭某个容器

用names也可以

docker stop 45f65defa26b

指定端口映射

比如让容器的5000端口映射到主机的32769

pxy@pxy-pc:~$ docker run -d -p 32769:5000 training/webapp python app.py
06e16346ffc8755625ae4c285a51376100853de014671a5272692900111031a7
pxy@pxy-pc:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES
06e16346ffc8        training/webapp     "python app.py"     4 seconds ago       Up 3 seconds        0.0.0.0:32769->5000/tcp   mystifying_mcclintock

此时需要访问http://0.0.0.0:32769/
在这里插入图片描述

查看容器的端口映射情况

如果带了端口号,也可以只看某一个端口的映射情况。比如最后一个就是容器内部的5000端口映射到主机的127.0.0.1:5000。

pxy@pxy-pc:~$ docker port 06e16346ffc8
5000/tcp -> 0.0.0.0:32769
pxy@pxy-pc:~$ docker port mystifying_mcclintock
5000/tcp -> 0.0.0.0:32769
pxy@pxy-pc:~/Desktop$ docker port funny_williams 5000
127.0.0.1:5000

查看日志

pxy@pxy-pc:~$ docker logs -f mystifying_mcclintock
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
172.17.0.1 - - [14/Dec/2020 08:53:25] "GET / HTTP/1.1" 200 -
^C

-f 是让docker logs像使用tail -f 文件名一样输出容器内部的标准输出(即:会把文件最尾部的内容显示在屏幕上,并且不断刷新。只要该文件还在刷新就一直可以看到最新内容)。

查看容器内部运行的进程

pxy@pxy-pc:~$ docker top mystifying_mcclintock
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                5329                5307                0                   16:52               ?                   00:00:00            python app.py

导出容器的配置和状态信息

docker inspect mystifying_mcclintock > info.txt

实际上info.txt是一个json文件。

导出容器

如果要导出本地某个容器,可以使用 docker export 命令。

$ docker export 1e560fca3906 > ubuntu.tar

导入容器快照

可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1:

$ cat docker/ubuntu.tar | docker import - test/ubuntu:v1

此外,也可以通过指定 URL 或者某个目录来导入,例如:

$ docker import http://example.com/exampleimage.tgz example/imagerepo

删除容器

$ docker rm -f 1e560fca3906

下面的命令可以清理掉所有处于终止状态的容器。

$ docker container prune

查询最近一次创建的容器

docker ps -l

查看所有容器

docker ps -a

这里包括exited的容器。

重启容器

docker start mystifying_mcclintock

正在运行的容器可以用restart重启。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值