docker基础使用

Posted hadeian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker基础使用相关的知识,希望对你有一定的参考价值。

运行一个容器

创建一个容器
docker run -i -t ubuntu:VERSION /bin/bash
    -i : 开启交互模式
    -t : 为容器分配一个伪tty终端,通常与 -i 一起使用
    -d : 后台运行容器,并返回容器ID
    VERSION : 默认下载镜像的latest版本,可手动指定需要下载的镜像版本

技术图片

# 创建一个命名容器
docker run --name first_docker -it ubuntu:VERSION /bin/bash
注意:使用此方法运行的容器在退出后,容器将停止运行,无法再后台运行,可以使用 docker start IMAGEID 重新运行该容器。
# 重新启动已经停止的容器
docker start first_docker
(用命名方式创建的容器可以使用名字启动,未命名的容器可以指定容器ID启动)
登录容器空间
docker attach first_docker
(使用此方式登录容器再退出时不可直接使用exit,可以使用CTRL-p或者CTRL-q退出,不推荐使用此方式登录容器)

建议使用下列命令登录容器:
docker exec -it first_docker /bin/bash
创建守护式容器
docker run --name daemon_dave -d ubuntu:VERSION /bin/bash
(使用此方式创建的容器将以守护进程形式在后台运行)
查看容器内部程序运行日志
docker logs [OPTIONS] daemon_dave
    -f : 监控Docker日志,与 tail -f 类似,可以通过Ctrl-c退出
    --tail <NUMBER> -f : 查看从指定位置开始的日志
    
docker日志驱动
docker run --log-driver "syslog" --name daemon_dwayne -d ubuntu:14.04 /bin/sh -c "while true;do echo 'hello world';sleep 1;done"
(将docker日志输出到Syslog,导致docker logs不输出任何信息)
    --log-driver 选项
        none : 不输出任何日志,禁用日志
        syslog : 将日志重定向至Syslog
        json-file : 默认输出方式,可使用 docker logs 查看日志信息
        
查看容器进程
docker top daemon_dwayne
查看一个或多个容器统计信息
docker stats IMAGE_ID[,IMAGE_ID,...]
停止守护式容器
docker stop IMAGE_ID
    
自动重启容器
容器默认不会自动重启,可以通过 --restart 标志,让docker容器自动重启
docker run --restart always --name daemon_dave -d ubuntu:14.04 /bin/sh -c "while true;do echo 'hello world';sleep 1;done"
    --restart 选项:
        always : 无论什么原因退出的都会重启
        no-failure[:Number] : 当退出代码非0时重启,可指定重启次数
        
查看容器信息
docker inspect daemon_dave
有选择的获取容器信息
# 查看容器运行状态
docker inspect --format='{{ .State.Running }}' IMAGE_ID[,IMAGE_ID,...]
# 查看容器ip地址
docker inspect --format='{{ .NetworkSetting.IPAddress }}' IMAGE_ID[,IMAGE_ID,...]
删除容器
docker rm IMAGE_ID
# 删除所有容器
docker rm $(docker ps -a -q)
# 删除镜像
docker rmi $(docker images -q)

以上是关于docker基础使用的主要内容,如果未能解决你的问题,请参考以下文章

markdown [Docker] Docker片段列表和命令#linux #docker #snippets

markdown docker-compose片段

sh Docker片段

使用docker需要知道的基础知识

[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础

动态SQL基础概念复习(Javaweb作业5)