1、创建一个后台运行进程的容器
[dkuser@c741 ~]$ docker run -d ubuntu:15.10 /bin/sh -c "while true;do echo hello world;sleep 1;done"
93201dcb067f1c55c173366a80162fca7c7a6f472c26f186376cb080fb84dd4a
查看容器
[dkuser@c741 ~]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
93201dcb067f ubuntu:15.10 "/bin/sh -c 'while t…" 35 seconds ago Up 34 seconds fervent_engelbart
查看日志,最后的参数是容器的ID,也可以换成容器名 fervent_engelbart
[dkuser@c741 ~]$ docker logs 93201dcb067f
hello world
hello world
hello world
hello world
hello world
....
再次查看日志会发现输出的内容增加了,说明容器一直在运行,输出的进程一直在执行。
停止容器
[dkuser@c741 ~]$ docker stop 93201dcb067f
2、运行一个web应用
载入镜像
[dkuser@c741 ~]$ docker pull training/webapp
运行容器
[dkuser@c741 ~]$ docker run -d -P training/webapp python app.py
参数说明:
-d:让容器在后台运行
-P:将容器内部使用的网络端口映射到我们使用的主机上
查看容器
[dkuser@c741 ~]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
faa9d63a07b8 training/webapp "python app.py" 5 seconds ago Up 4 seconds 0.0.0.0:32768->5000/tcp zealous_cohen
可以看到端口信息,这里做了端口的映射,docker容器的5000端口映射到主机端口32768。
可以使用浏览器访问WEB应用
地址:http://192.168.121.129:32768/
使用 -p 设置不一样的端口
[dkuser@c741 ~]$ docker run -d -p 5000:5000 training/webapp python app.py
查看新启动的容器
[dkuser@c741 ~]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e6f226450c90 training/webapp "python app.py" 5 seconds ago Up 5 seconds 0.0.0.0:5000->5000/tcp clever_hertz
faa9d63a07b8 training/webapp "python app.py" 3 minutes ago Up 3 minutes 0.0.0.0:32768->5000/tcp zealous_cohen
使用浏览器可以通过新的端口访问WEB应用
地址:http://192.168.121.129:5000
查看容器端口映射到宿主机端口的情况
[dkuser@c741 ~]$ docker port e6f226450c90
5000/tcp -> 0.0.0.0:5000
可以加入 -f 参数查看容器实时日志,类似tail -f
[dkuser@c741 ~]$ docker logs -f e6f226450c90
查看容器进程
[dkuser@c741 ~]$ docker top e6f226450c90
UID PID PPID C STIME TTY TIME CMD
root 21127 21111 0 11:12 ? 00:00:00 python app.py
查看容器底层信息
[dkuser@c741 ~]$ docker inspect clever_hertz
[
{
"Id": "e6f226450c90c65f394cd0862fc058a38ec457821d189779b9ded7e9208d0a24",
"Created": "2019-04-25T03:12:02.032267436Z",
"Path": "python",
"Args": [
"app.py"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
.....
重启容器
对于正在启动的容器可以使用restart重启
[dkuser@c741 ~]$ docker restart clever_hertz
查询最后一次创建的容器
[dkuser@c741 ~]$ docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e6f226450c90 training/webapp "python app.py" 6 minutes ago Exited (137) 35 seconds ago clever_hertz
参考: