docker2

容器的操作:
$docker run IMAGE [COMMAND] [ARG...] : [COMMAND] [ARG...]是容器启动时运行的命令
$docker run ubuntu echo ‘hello world’   :启动容器并输出helloworld

启动交互式容器:
$docker run -i -t IMAGE /bin/bash : 在容器启动时运行bash命令。
-i : 容器的守护进程始终打开标准输入
-t : 为创建的容器分配一个伪tty终端,这样新创建的容器才能提供一个交互试的shell

$docker run -i -t ubuntu /bin/bash : 进入到了容器的bash中,就可以与新建立的容器进行交互,
$ps -ef
$exit : 退出这个交互式的容器

$docker ps [-a] [-l] : -a列出所有创建的容器,-l列出最新创建的容器
$docker ps -a : CONTAINER ID 是docker的守护进程在启动容器时为容器分配的唯一id,NAMES是docker的守护进程为容器分配的名字。

$docker  inspect  53SDijuy678(容器的id) : 根据容器的id 返回容器的相关配置信息
$docker run --name=容器名字 -i -t ubuntu /bin/bash : 创建一个容器带有名字
$docker  inspect  容器名字 : 返回 ’容器名’ 容器的相关配置信息

$docker start  [-i] 容器名 :重新启动某个容器,-i是以交互的方式启动
$docker rm 容器名 :删除已经停止的容器
上面的容器是交互式容器,在命令结束后就停止,长期运行的容器是守护试的容器,能够长期运行,没有交互式的会话,适合运行应用程序和服务。
$docker run -i -t ubuntu /bin/bash : 启动交互式容器
$ctrl P,ctrl Q 来退出容器,使用docker ps (不是docker ps  -a) 看到刚才建立的守护容器还在运行当中,docker  ps  -a是即使已经停止了也会显示出来。Dokcer  ps  是查看后台运行的容器。这就是后台容器。
$docker attach 名字:进入后台运行的容器(不是后台运行的不能)
启动守护式容器:
$docker run -d 容器名 [COMMAND] [ARG...] : -d启动容器时以后台的方式启动。
docker run --name=yw_shouhu_contain_2 -d ubuntu /bin/bash -c "while true ;do echo hello world;sleep 1;done" : 每隔一秒打印,-d只是以后台的形式运行命令,命令结束后容器依旧会停止,
4cd6c45f7a3f498af2b92d21255221d91d3d8c29d6ff9e80c16e7a0f41f0ba77
返回的是docker守护进程分配给容器的唯一id,
yw1989@ubuntu:~$ 
yw1989@ubuntu:~$ docker ps :可以看到容器一直在运行
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
4cd6c45f7a3f        ubuntu              "/bin/bash -c 'while…"   4 minutes ago       Up 4 minutes                            yw_shouhu_contain_2
可以通过容器的日志命令,查看容器内部的运行状况:
$docker logs [-f] [-t] [--tail] 容器名
-f: --follows=true|false,是否一直跟踪日志的变化并返回结果,为false就是值看到截止当前时间之前的,为true就是随时间变化一直在输出日志。
-t:返回的结果上加上时间戳
--tail:返回结尾处多少数量的日志,不指定就全部返回, --tail 10只显示10条。
yw1989@ubuntu:~$ docker logs -tf --tail 10 yw_shouhu_contain_2
2018-02-01T09:32:19.470722311Z hello world
2018-02-01T09:32:20.472716990Z hello world
2018-02-01T09:32:21.474790542Z hello world
2018-02-01T09:32:22.476651366Z hello world
2018-02-01T09:32:23.478520669Z hello world
查看容器的进程:
$docker top 容器名:查看运行中容器的进程情况。
yw1989@ubuntu:~$ docker top yw_shouhu_contain_2
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                5306                5288                0                   01:20               ?                   00:00:00            /bin/bash -c while true ;do echo hello world;sleep 1;done
运行的容器中启动新的进程:Docker是一个容器运行一种服务,仍旧需要在docker中运行多个进程,比如对运行中的容器监控和管理。
$docker exec [-d][-i][-t] 容器名 [COMMAD][ARG...]
-d:
-i:
-t:
[COMMAD][ARG...]:是需要执行的命令和参数
yw1989@ubuntu:~$ docker exec -i -t yw_shouhu_contain_2 /bin/bash :容器中启动一个新的bash会话,ctrl+p,ctrl+q退出bash,
yw1989@ubuntu:~$ docker top yw_shouhu_contain_2 : 可以看到bash的进程已经运行在容器中了
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                5306                5288                0                   01:20               ?                   00:00:00            /bin/bash -c while true ;do echo hello world;sleep 1;done
root                6883                5288                0                   01:43               pts/0               00:00:00            /bin/bash
root                7018                5306                0                   01:45               ?                   00:00:00            sleep 1
停止守护式容器:
$docker stop 容器名:发送信号容器,等待容器的停止
$docker kill 容器名:

Ctrl+P ctrl+Q:将交互式的容器转到后台
Docker run -d :启动守护式容器
Docker logs :日志
Docker top:进程


在容器中部署静态网站:
设置容器的端口映射:run [-P][-p]
-P:为容器暴露的所有端口进行映射,-p指定映射哪些容器的端口。
1.只指定容器的端口:docker run -p 80 -i -t ubuntu /bin/bash
2.指定宿主机的端口和容器的端口,这样的端口映射就是一一对应的:docker run -p 8080:80 -i -t /bin/bash
3.指定ip和容器的端口:docker run -p 0.0.0.0:80 -i -t ubuntu /bin/bash
4.指定ip、宿主机端口、容器端口:docker run -p 0.0.0.0:8080:80 -i -t ubuntu /bin/bash

 

posted @ 2018-02-01 19:51  无天666  阅读(393)  评论(0编辑  收藏  举报