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


 


参考:


https://www.runoob.com/docker/docker-tutorial.html