Docker 常用命令及部署

 

常用命令


 

1、搜索镜像
$ docker search java

- NAME : 镜像名称
- DESCRIPTION :
- STARS : 镜像仓库收藏数
- OFFICIAL : 是否为官方文档
- AUTOMATED : 是否是自动构建的仓库

2、下载镜像
使用 docker pull 命令下载镜像。
如果要指定版本请在命令后面加冒号 <:version>
$ docker pull java:8

如果是个人镜像,需要使用 #docker pull 用户名/仓库名

3、 列出镜像
$ docker images

4、删除本地镜像
$ docker rmi java

 


 

容器相关命令

 

1、新建并启动容器
使用 docker run 命令 新建并启动一个容器。
-d 选项:后台运行
-P 选项:注意是大写的,随机端口映射
-p 选项:指定端口映射,有4种格式
--ip:hostPost: containerPort
--ip : containerPort
-- hostPort:containerPort
比如 docker run -d -p 127.0.0.1:80:80 我们将容器内的80端口绑定到特定IP的80端口
或者docker run -d -p 127.0.0.1::80 绑定到特定IP的随机端口
-- containerPort
- network选项,指定网络模式,有下列可选参数
-- network=bridge 默认选项,连接到默认的桥接
-- network=host 容器使用宿主机网络
-- network=containerName-or-ID 告诉Docker 让新建的容器使用已有的容器的配置

 

-v 挂载卷
-link 创建2个容器间的客户服务链接 Docker1.9 之前容器通信使用。之后不推荐。缺点是 Docker不能链接位于不同宿主机的容器

 

 

Nginx 镜像
# docker run -d -p 91:80 nginx
启动一个nginx 容器,
-d 后台运行
-p 宿主机端口:容器端口 描述:开放容器端口到宿主机端口

使用 # ip addr 查看容器ip

docker run 命令在创建容器的时候,会先检查本地是否有指定的镜像,如果没有就从 Docker hub 下载一个新镜像。


 

Ubuntu 镜像(容器内部操作)
# docker run -i -t ubuntu /bin/bash
-t 伪tty 终端
-i 保证容器得 STDIN 是开启得
/bin/bash 命令启动了一个 Bash shell

注意圈出得地方,使用-t 伪造了 tty,然后在容器运行后直接进入到了容器内部(Docker 建议非必须,不要操作容器,而是使用 Dockerfile 文件命令)
1、 ef4aea4fa736 代表得是容器得ID
使用 # hostname 命令也可以获取
2、 查看 hosts 文件
# cat /etc/hosts 文件

Docker 给该容器得 IP 地址添加了一条 主机配置项

不管是Nginx 容器还是 ubuntu 容器, 都拥有自己的网络,IP地址,以及一个用来和宿主机进行通信得桥接网络接口。


 

2、 列出容器
# docer ps

如果需要列出所有的镜像,需要加 -a。之前的Java 是镜像
- CONTAINER ID : 容器名称
- INAGE : 镜像名称
- COMMAND: 启动容器运行时的命令
- STATUS: 容器的创建时间 up 代表启动
- PORTS: 对外的端口号
- NAMES: 容器名称,由 Docker 默认生成,也可以使用 docker run 命令的 --name 选项指定

3、容器命名
# docker run --name haoming_container_nginx -i -t nginx
-- name 别名
-t tag

4、停止容器
使用 docker stop 命令。
# docker stop b8d47eaa6588
b8d47eaa6588 是容器 ID,也可以使用 docker stop 容器名称 来指定容器

:下面同情况
5、强制停止容器
使用 docker kill 命令发送 SIGKILL 信号来强制停止容器
# docker kill ID

6、启动已经停止的容器
使用 docker run 命令是新建并且启动,使用 docker start 命令 启动
# docker start ID
由于某种错误导致容器停止得,可以使用 --restart 标志,自动重启
# docker run --restart=always
always表示总是重启,还有 on-failure参数,表示只有退出代码是非0时才重启。on-failure 还可以指定重启次数 --restart=on-failure:5

7、查看容器的所有信息
# docker inspect ID
也可以使用 -f 或者 --format 标志来选定结果
比如
# docker inspect --format='{{ .State.Running}}' daemon_dave
# docker inspect --format='{{ .Driver}}' daemon_dave
8、查看容器日志
# docker container logs ID

9、 查看容器里的进程
#docker top ID

#问?是否可以通过 容器的IP 和 容器的对外端口访问容器
宿主机访问

10、进入容器
# docker container exec -it ID /bin/bash

 

容器内部 是简单的 Linux 系统
Nginx 默认目录在 cd /usr/share/nginx/html/

 


11、退出容器
# exit

12、守护式容器
守护式容器没有交互式会话,非常适合运行应用程序和服务。
大多时候我们都需要以守护式来运行我们得容器
# docker run --name daemon_dave -d ubuntu /bin/bash -c "while true; do echo hello world; sleep 1; done"
-d 后台运行
-c shell 命令

12.1 查看容器内部日志
# docker logs daemon_dave

 


也可以使用 -f 实时输出 与 tail -f 类似
既然有 -f, 那么 tail -n 也应该有
# docker logs --tail 10 daemon_dave
获取最后10行

13、日志驱动
--log-driver 可以在启动容器得时候添加
可用得选项包括 默认得 json-file,json-file 为前面得 docker logs命令提供了基础
其他可用得选项还包括 syslog,该选项将禁用 docker logs 命令,并将容器所有得日志都重定向到 Syslog
14、查看容器内进程
# docker top daemon_dave

 


15 统计容器得使用情况
# docker status <ID or name> <ID or name> <ID or name>

 


16 、容器内部运行进程
在Docker 1.3 之后,可以通过 docker exec 命令在容器内部额外启动新进程
比如
# docker exec -d daemon_dave touch /etc/new_config_file
解释:在容器内部创建一个空文件,通过 docker exec 后台命令,可以在运行得容器中进行维护,监控和管理
# docker exec -t -i daemon_dave /bin/bash
-t 创建 tty
-i 捕捉STDIN

 


17、删除容器
# docker rm ID
从 Docker 1.6.2 开始,可以通过 docker rm -f 来删除运行中得容器,之前得版本必须要先 stop 或者kill 才能删除
删除所有容器
# docker rm 'docker ps -a -q'
-a 列出所有得容器
-q 表示只返回容器得ID

 


 

posted @ 2018-12-29 16:20  haoming1100  阅读(156)  评论(0编辑  收藏  举报
本文作者: haoming1100 博客链接: http://www.cnblogs.com/haoming1100 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载时必须带上原文链接!