Docker 容器基本操作

启动容器

  • 运行一次命令并结束进程

    $ docker run [--name=cname] IMAGE [COMMAND][ARG...]
    # run在新容器中执行命令
    # --name=cname 自定义容器名字

    由于第一使用ubuntu,而本地并不存在ubuntu的image,所以会自动执行pull操作拉取image

    $ docker run ubuntu echo 'hello the cruel world!'
    Unable to find image 'ubuntu:latest' locally
    latest: Pulling from library/ubuntu

    客户端CentOS执行命令docker run ubuntu echo ‘hello the cruel world!‘

    $ docker run ubuntu echo 'hello the cruel world!'
    hello the cruel world!
  • 启动交互式容器:
    $ docker run -i -t IMAGE /bin/bash
    # -i --interactive=ture | fasle 默认是 false
    # -t --tty=true | false 默认是 false

    客户端CentOS执行命令docker run -i -t ubuntu /bin/bash

  • 启动守护式容器:

    • 什么是守护式容器:

      • 能够长期运行
      • 没有交互式会话
      • 适合运行应用程序和服务
  • 第一种,从交互式变为守护式
    $ docker run-i-t IMAGE/bin/bash
      Ctrl+P Ctrl+Q

    客户端CentOS执行命令docker start -i I2D

  • 第二种,从运行起便是守护式

    $ docker run -d container_name [COMMAND] [ARG]
    # -d

    客户端CentOS执行命令docker run -d --name=Dtest ubuntu

    $ docker run -d --name=Dtest ubuntu
    0cdfa354a681f134421af606242716a80d1373089b909a9a937080c7c1027cce

    返回了container_id_

查看容器

  • 查看多个容器一般信息

    $ docker ps [-a] [-1]
    # 无参数时列出正在运行的容器
    # -a 列出所有容器
    # -l 列出新建容器
  • 详细查看单个容器信息
    $ docker inspect [container id] [container name]?

重启容器

$ docker start [-i] container_name
# -i --interactive=ture | fasle 默认是 false 

客户端CentOS执行命令docker start -i ubuntu serene_torvalds

停止容器

  • 停止守护式

    $ docker stop [-t] container_name
    -t, --time int   Seconds to wait for stop before killing it (default 10)
  • 停止交互式
    exit

删除容器

$ docker rm [-f] container_name
-f, --force     Force the removal of a running container (uses SIGKILL)
-v, --volumes   Remove the volumes associated with the container

附加容器

从守护式变为交互式

$ docker attach [container_name] [container id]

客户端CentOS执行命令docker attach I2D

$ docker attach I2D
[email protected]:/#

容器日志

$ docker logs --help
Usage:  docker logs [OPTIONS] CONTAINER
Fetch the logs of a container
Options:
      --details        Show extra details provided to logs
  -f, --follow         Follow log output
      --since string   Show logs since timestamp (e.g. 2013-01-02T13:23:37) or relative (e.g. 42m for 42 minutes)
      --tail string    Number of lines to show from the end of the logs (default "all")
  -t, --timestamps     Show timestamps
      --until string   Show logs before a timestamp (e.g. 2013-01-02T13:23:37) or relative 

客户端CentOS执行命令让容器每秒打印hello world

$ docker run -d --name=Dtest ubuntu /bin/sh -c "while true; do echo hello world; sleep 1;done"
f6ea2c0c091cb8e3d8cb94f8bf7284b2b1d7e271e4725545c9118178c433cadb
  • 默认查看所有日志:

    $ docker logs Dtest
    hello world
    hello world
    hello world
    hello world
    hello world
    hello world
    hello world。。。。。。

    然而这样并不能看出日志的价值所在

  • -t可以看到时间
    $ docker logs -t Dtest
    2018-01-27T14:18:11.908687857Z hello world
    2018-01-27T14:18:12.912134261Z hello world
    2018-01-27T14:18:13.919331171Z hello world
    2018-01-27T14:18:14.921899475Z hello world
    2018-01-27T14:18:15.930985832Z hello world
    2018-01-27T14:18:16.934391247Z hello world
    2018-01-27T14:18:17.939755671Z hello world
    2018-01-27T14:18:18.940269958Z hello world
    。。。。。。
  • -f一起跟踪日志

  • --tail 0只查看最新日志

查看进程

docker top CONTAINER [ps OPTIONS]

启动新进程

虽然Docker的理念是一个容器运行一种服务,但是仍然需要在容器运行多个进程心满足需求

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

Run a command in a running container

Options:
  -d, --detach               Detached mode: run command in the background
      --detach-keys string   Override the key sequence for detaching a container
  -e, --env list             Set environment variables
  -i, --interactive          Keep STDIN open even if not attached
      --privileged           Give extended privileges to the command
  -t, --tty                  Allocate a pseudo-TTY
  -u, --user string          Username or UID (format: <name|uid>[:<group|gid>])
  -w, --workdir string       Working directory inside the container
  • 客户端CentOS执行命令docker exec -i -t Dtest /bin/bash

    $ docker exec -i -t Dtest /bin/bash
    [email protected]:/# 

    CTRL+P,CTRL+Q退出交互式模式到守护模式,再次使用docker top,可以看到容器中多了一个进程

停止守护式

$ docker stop 容器名 # 默认等等10秒
$ docker kill 容器名 # 粗暴的方式

端口映射

  • 映射所有端口
docker run -P -i-t ubuntu/bin/bash
# -P, --publish-all=true I false 默认为false
# 为容器暴露的所有端口进行映射
  • 指定端口映射列表
-p,一publish=[]

containerPort
docker run -p 80 -i -t ubuntu /bin/bash 

hostPortcontainerPort
docker run -p 8080:80 -i -t ubuntu /bin/bash 

ip::containerPort
docker run -p 0.0.0.0:80 -i -t ubuntu /bin/bash 

ip : hostPort: containerPort
docker run -p 0.0.0.0:8080:80 -i -t ubuntu /bin/bash

使用Docker帮助

  • man docker-run
  • man docker-logs
  • man docker-top
  • man docker-exec

原文地址:https://www.cnblogs.com/oneTOinf/p/8450187.html

时间: 2024-10-31 09:21:24

Docker 容器基本操作的相关文章

Docker 容器基本操作[Docker 系列-2]

?Docker 入门及安装[Docker 系列-1] 镜像就像是一个安装程序,而容器则是程序运行时的一个状态. 查看容器 查看容器 启动 docker 后,使用 docker ps 命令可以查看当前正在运行的容器: 查看所有容器 上面这条命令是查看当前正在运行的容器,如果需要查看所有容器,则可以通过 docker ps-a 命令查看: 在查看容器时,涉及到几个查看参数,含义分别如下: CONTAINER ID:CONTAINER ID是指容器的id,是一个唯一标识符,这是一个64位的十六进制整数

Centos7.4—Docker容器安装配置与基本操作

Docker容器基本操作 目录第一部分 实验环境第二部分 安装配置Docker软件第三部分 Docker镜像操作第四部分 Docker容器操作第五部分 制作镜像第六部分 数据卷管理第七部分 网络通信第八部分 构建nginx镜像 第一部分 实验环境Linux服务器一台系统:CentOS 7.4IP地址:192.168.80.10 注意:需要该服务器能上公网 第二部分 安装配置docker软件一:配置yum源,加入docker源[[email protected] ~]# vi /etc/yum.r

Docker容器之基础管理

Docker介绍 是一种轻量级的"虚拟机" 在Linux容器里运行应用的开源工具 Docker与虚拟机的区别 虚拟机是在一台物理机器上,利用虚拟化技术,虚拟出来多个操作系统,每个操作系统之间是隔离的.Docker是开源的应用容器引擎,依然需要先在电脑上安装操作系统,然后安装Docker容器的管理器,才可以.虚拟机是在硬件级别进行虚拟化,而Docker是在操作系统的层面虚拟化:虚拟机是通过模拟硬件搭建操作系统 Docker的使用场景 打包应用程序简化部署 可脱离底层硬件任意迁移 例:服务

Docker入门学习2 ——容器基本操作

摘要:介绍Docker容器相关的操作命令. 知识点: run ps start attach exec top stop kill inspect rm logs images rmi pull push commit build 注:可以使用docker COMMAND --help来查看COMMAND的详细用法,本文只介绍常用的子集. 一.启动容器 启动之前未启动过的容器: docker run [-d] [-i] [-t] IMAGE [Command] [Arguments] · -d:

用docker搭建测试环境--docker的基本操作

上一篇文章中最后执行了docker pull centos的指令,经过一段时间的等待,会从hub.docker.com上下载docker官方最新的centos的images,接下来熟悉一下docker的一些基本操作.1.查看本地的imagesdocker images 2.从hub.docker.com拉取响应的imagesdocker pull images 3.运行指定的images,并在images里边执行command命令docker run images command 4.查看当前运

无需安装 vsftpd , 直接使用 FTP 来管理 docker 容器中的文件

无图无真相,先放个效果图: 背景 使用 docker 来跑一些服务很方便,但是有的时候想管理容器里面的文件却很麻烦 -- 一般常规做法有3种: 通过数据卷或数据卷容器的方式 启动容器的时候时候启动 vsftpd 或者 sshd 等服务,并开启端口映射,然后通过 ftp/sftp 连上去管理 进入容器的终端,通过命令行管理 但是这些做法都有一定的缺陷和不便: 1和2都是需要在启动容器的时候做一些配置,如果容器已经启动了就歇菜了.而且2需要额外的端口映射,占用主机的端口.3的做法比较 geek ,而

Docker的基本操作

容器基本操作 1.启动容器 $docker run image [COMMAND] [ARG…] run在新容器中执行命令 2.启动交互式容器 $docker run -i -t IMAGE /bin/bash -i --interactive = ture | fasle 默认是false -t --tty=true | false 默认是false 3.查看容器 $docker ps [-a] [-l] -a 查看所有 -l 查看最新 $docker inspect 4.自定义容器名: $d

Docker05 Docker容器

目录 [TOC] 参考书目: 黄靖钧. Docker从入门到实战[M]. 机械工业出版社, 2017. 一.容器的概念 Docker容器是镜像的运行实例.容器在镜像已有的文件层添加一层可读可写的文件层,使得容器就像是一个动态的镜像.所以,docker的内部结构必定与镜像结构十分相似. 如图所示,在docker容器中包含docekr镜像层以及在镜像层上建立的只读初始化层以及可读写层.在初始化层存储的大多是容器环境初始化时与容器相关的环境信息(容器主机名.主机host信息和域名服务文件).可读写层用

Docker容器技术04

基于docker03教程的centos容器,我们接着来说docker容器的基本操作. docker03教程中我们创建了一个centos镜像,那么我们怎么查看这个容器的具体信息呢?这就用到了docker inspect命令: 这样就可以看到这个容器的详细信息了. 接下来我们来查看这个容器的ip地址,第一种办法,我们在容器内查看ip: 第二种方法通过docker inspect查看ip地址: 学会这些最基础的操作后,接下来我们用容器来部署nginx服务. 新创建一个centos容器,将容器的80端口