zoukankan      html  css  js  c++  java
  • Docker- 容器

    Docker组成之容器

    一、启动容器

    1. 启动容器执行单次命令然后马上容器就自动关闭
    docker run 镜像名或镜像id  启动的shell命令【启动执行命令后就关闭了容器】
    
    1. 交互式启动容器
    docker run -i -t image_name /bin/bash
    

    二、查看容器

    1. 查看系统中的容器
    docker ps [-a][-l]
    不给参数,只列出运行中的所有容器
    -a 显示所有容器包含已经关闭的容器
    -l 列出最新创建的容器
    eg: docker ps |grep 镜像名/id  【查看镜像创建的容器】
    
    1. 查看容器的详细信息
    docker inspect 容器id或容器名
    
    1. 自定义容器名
    docker run --name=container01 -it  image_name /bin/bash
    
    1. 重新启动已经停止过的容器
    docker start [-i] 容器名/容器id   【加上-i 也是交互模式】 
    
    1. 关闭容器
    docker stop 容器名/容器id
    
    1. 删除容器【仅仅删除已经停止的容器】
    docker rm  容器名/容器id
    
    1. 守护式启动容器方式一【后台运行】
    docker run -it image_name /bin/bash
    **先 ctrl+p 后 ctrl+q **【后台运行】
    
    1. 守护式启动容器方式二 【-d 时当命令执行完了还是会退出容器】
    docker run -d  -it image_name/id  /bin/bash -c "while true;do echo hello word;sleep 1; done "
    
    1. 进入运行中的容器【不建议使用】
    docker attach  容器id或容器名
    
    1. 运行中的容器中启动新进程【如管理任务或查看debug日志】
    docker exec -it [-d] 容器名 命令 参数
    
    1. 查看容器日志
    docker logs 容器名/容器id 
    -f 一直跟踪日志,--follows=true|false 默认false
    -t 显示时间,--timestamps=true|false 默认false
    --tail 10 最新的10条,0为最新的日志
    eg: docker logs -tf --tail 10 con01 
    
    1. 查看容器内的进程
    docker top 容器名/容器id
    
    1. 停止运行中的容器
    docker stop 容器名  【发送信号等待容器停止,返回容器名】
    docker kill 容器名  【直接停止容器】
    
    1. 容器的端口映射,物理机端口与容器的端口
    > docker run -P 端口  -it  image_name /bin/bash  【暴露容器所有的端口】
    > docker run -p 端口 -it image_name /bin/bash 【指定的容器端口映射】
    	```powershell
    	# 四种方式:
    	1. 只指定容器的端口,宿主机端口随机映射
    		  docker run -p 80 -it image_name /bin/bash
    	2. 同时指定容器端口对应的宿主机端口【宿主:容器】
    		  docker run -p 8080:80 -it image_name /bin/bash
    	3. 宿主机ip对应容器端口
    		  docker run -p 0.0.0.0:80 -it image_name /bin/bash
    	4. 宿主机ip:宿主机端口:容器端口
    		  docker run -p 0.0.0.0:8080:80 -it image_name /bin/bash
    	```
    
    1. 查看容器的端口映射
    > docker port 容器名/容器id
    
    1. 删除所有已经停止的容器
    > docker rm $(docker ps -qf status=exited)
    
    1. 搜索多个容器id,通过grep 多个条件
    > docker ps |grep -E  '容器id1|容器id2'
    
    1. 显示所有容器的IP
    > docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
    
    1. 根据容器名查容器id并删除
    > ##第一种写法
    > docker stop `docker ps -a| grep test-project | awk '{print $1}' `
    > docker rm   `docker ps -a| grep test-project | awk '{print $1}' `
    >
    > ##第二种写法
    > docker stop  `docker ps -aq --filter name=test-project`
    > docker rm    `docker ps -aq --filter name=test-project`
    
    1. 根据镜像名查容器id并删除【测试发现仅支持镜像在本地】
    > ##第一种写法
    > docker stop `docker ps -a| grep ygsama/test-project:1.0.2 | awk '{print $1}' `
    > docker rm   `docker ps -a| grep ygsama/test-project:1.0.2 | awk '{print $1}' `
    >
    > ##第二种写法
    > docker stop  `docker ps -aq --filter ancestor=ygsama/test-project:1.0.2`
    > docker rm   `docker ps -aq --filter ancestor=ygsama/test-project:1.0.2`
    
    1. 根据镜像名查镜像id并删除
    > docker images -q --filter reference=ygsama/test-project*:*
    > docker image rm `docker images -q --filter reference=10.2.21.95:10001/treasury-brain*:*`
    
  • 相关阅读:
    Java 分支结构
    Java 循环结构
    Java 运算符
    Java 修饰符
    Alpha冲刺——Day 6
    Alpha冲刺——Day 5
    Alpha冲刺——Day 4
    Alpha冲刺——Day 3
    Alpha冲刺——Day 2
    Alpha冲刺——Day 1
  • 原文地址:https://www.cnblogs.com/sunxiuwen/p/13538312.html
Copyright © 2011-2022 走看看