启动容器:
docker run IMAGE [COMMAND][ARG...]
IMAGE:容器名称
COMMAND:运行的命令
ARG:参数
例子:docker run ubuntu echo 'hello world'
启动交互式容器:
docker run -i -t IMAGE /bin/bash
-i --interactive=true|fasle 默认是false
-t --tty=true|false 默认是false
运行自定义容器名:
docker run --name=自定义名 -i -t IMAGE /bin/bash
例子:docker run --name=container01 -i -t ubuntu /bin/bash
守护式容器
特点
能够长期运行
没有交互式会话
适合运行应用程序和服务
启动守护式容器:
docker run -d 镜像名 [COMMAND][ARG...]
以守护的形式运行容器
在运行启动交互式容器:
docker run -i -t IMAGE /bin/bash
以Ctrl+P 和 Ctrl+Q
附加到运行中的容器:
docker attach 容器名|容器id
停止守护式容器
//发送一个信号给容器,等待容器停止
docker stop 容器名|容器Id
//直接停止容器
docker kill 容器名|容器Id
重新启动已经停止的容器
docker start [-i] 容器名|容器id
例子: docker start -i container01(启动上面的自定义容器名容器)
查看容器:
docker ps [-a][-l]
-a 列出所有容器
-l 列出下最新创建的容器
无参数 docker ps 返回正在运行的容器
查看已经建立的容器
//docker inspect [OPTIONS] NAME|ID [NAME|ID...] [flags]
docker inspect +容器的CONTAINER ID或容器的NAMES
删除容器
//只能删除没有启动的容器
docker rm 容器名|容器id
docker rm 90a
在运行容器中启动新的进程
docker exec [-d][-i][-t] 容器名 [COMMAND][ARG...]
例子:docker exec -i -t dc1 /bin/bash
查看容器内进程
docker top 容器名|容器Id
查看容器日志
docker logs [-f][-t][--tail] 容器名|容器id
-f --follows=true|false 默认false (一直跟踪病返回结果)
-t --timestamps=true|false 默认false(在返回结果上加上时间戳)
--tail="all"(选择返回结尾处多少数量的日志,不指定返回所有)
例子:
返回所有的日志
docker logs dc1
加上输出的时间
docker logs -t dc1
可以看到日志一直在更新(Ctrl+c停止)
docker logs -tf dc1
只显示最新条10条
docker logs -tf --tail 10 dc1
显示最新日志
docker logs -tf --tail 0 dc1
容器的端口映射
run [-P][-p](大写讲对将对容器暴露的所有端口内进行映射,小写的能够制定映射那些容器的端口)
大写:例子:docker run -P -i -t ubuntu /bin/bash
小写:例子:
//只制定容器的端口,宿主机的端口是随机映射的
docker run -p 80 -i -t ubuntu /bin/bash
//同时指定了宿主机的端口和容器的端口
docker run -p 8080:80 -i -t ubuntu /bin/bash
//同时制定IP和容器的端口
docker run -p 0.0.0.0:80 -i -t ubuntu /bin/bash
//同时制定IP宿主机端口容器端口
docker run -p 0.0.0.0:8080:80 -i -t ubuntu /bin/bash