docker客户端、容器的使用、运行web应用
学习目标: 学习二、 学习内容:
1、 客户端
2、容器使用
3、运行一个 web 应用
1、 客户端
例如我们要查看 stats 指令的具体使用方法:
2、容器使用
pull
[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
run -t -i /bin/bash
-i: 交互式操作
-t: 终端
: 镜像
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash
[root@ecs-5ccd ~]# docker run -it ubuntu
root@66cfc3d27c46:/#
ps -a :查看所有的系统容器
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 ~]#
run -itd --name -test :让容器在后台运行,默认不进入容器 加了 -d
参数默认不会进入容器,想要进入容器需要使用指令 exec
[root@ecs-5ccd ~]# docker run -itd --name ubuntu-test ubuntu /bin/bash
bdd1f108bcf6f980c29fbc3e9d384462bec4658426c12e64b3bb2a917ab092ed
stop 容器ID:停止容器
容器ID:重启容器
容器ID:进入容器
exec -it 容器ID /bin/bash :进入容器,且 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
容器ID:导出容器
- test/:v1:导出容器
URL/或者其他目录:从某个目录或者URL导入容器
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 应用
pull / :导入镜像 run -d -P
/ 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
[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
stop 容器ID :停止web应用容器
start 容器ID :启动web应用容器
logs -f 容器ID:查看web应用容器的日志(-f是以容器内部标准输出)
port 容器ID :查看到容器的端口映射
top 容器名:查看web应用容器的进程
容器名:检查web应用
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