八、操作Docker容器(1)

作者: 温新

分类: 【Docker】

阅读: 2387

时间: 2020-08-10 15:29:55

run 创建容器并启动

语法

docker [container] run [OPTIONS] IMAGE [COMMAND] [ARG...]

[options]

参数 含义
-a -a,是否绑定到标准输入、输出、错误
-d 是否在后台运行,默认否
-i -i,以交互模式运行容器,通常与 -t 同时使用
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用
-v 绑定一个文件卷到容器内
-P (小写p)指定端口映射,格式为:主机(宿主)端口:容器端口
-p (大写P) 随机端口映射,容器内部端口随机映射到主机的端口
--name 为容器指定一个名称
--link 添加链接到另一个容器
-h 指定容器的hostname
-e 设置环境变量
  • -a,是否绑定到标准输入、输出、错误
  • -d,是否在后台运行,默认否
  • -i,以交互模式运行容器,通常与 -t 同时使用
  • -t,为容器重新分配一个伪输入终端,通常与 -i 同时使用
  • -v, 绑定一个文件卷到容器内
  • -p,(小写p)指定端口映射,格式为:主机(宿主)端口:容器端口
  • -P,(大写P) 随机端口映射,容器内部端口随机映射到主机的端口
  • --name,为容器指定一个名称
  • --link,添加链接到另一个容器
  • -h, 指定容器的hostname
  • -e,设置环境变量

案例

# 使用docker镜像nginx以后台模式启动一个容器,并命名为my_nginx
docker run --name my_nginx -d nginx:latest
# 使用nginx镜像以后台模式启动一个容器并将容器的80端口映射到主机随即端口
docker run -P -d nginx:latest
# 使用nginx镜像以后台模式启动一个容器,将容器的80端口映射到主机的80端口
# 并将主机目录挂载到容器的
docker run -p 80:80 -v /data:/data -d nginx:latest
# 匿名挂载,-v直接带容器内路径
docker run -d -P --name nginx01 -v /home/nginx

# 具名挂载,指定容器卷名,可通过 docker volume ls查看
docker run -d -P --name nginx02 -v juming-nginx:/home/nginx02

docker run 后台运行的标准操作

  1. 检查本地是否存在指定镜像,不存在则从公仓下载
  2. 利用镜像创建一个容器,并启动该容器
  3. 分配一个文件系统给容器,并在只读镜像外层挂载一层可读写层
  4. 从宿主主机配置的网桥接口接一个虚拟接口到容器中
  5. 从网桥的地址池配置一个IP地址给容器
  6. 执行用户指定的应用程序
  7. 执行完毕后容器被自动终止

docker run常见错误代码

  1. 125 Docker daemon执行出错,如不支持的Docker命令参数
  2. 126 指定的命令无法执行,如无权限
  3. 127 容器内命令无法找到
create 创建新的容器但不启动

语法

docker [container] create [options] IMAGE [COMMAND] [ARG...]

[options]同run的options

案例

docker container create --name hello hello-world

6_1_create

start/stop/restart 启动/停止/重启 容器

docker start :启动一个或多个已经被停止的容器

docker stop :停止一个运行中的容器

docker restart :重启容器

语法

docker [container] start [options] container
docker [container] stop [options] container
docker [container] restart [options] container

案例

# 停止运行中的容器
docker container stop web
# 启动已被停止的容器
docker container start web
# 重启容器
docker container restart web
logs 获取容器的日志

语法

docker [container] logs [options] CONTAINER

[options]

  1. -f 跟踪日志输出
  2. --since 显示某个开始时间的所有日志
  3. -t 显示时间戳
  4. --tail 仅列出最新N条容器日志

案例

# 查看容器web的日志
docker container logs -f web

2020-08-10

请登录后再评论