1.新建并启动容器

docker run [option] images [command][arg]    #根据镜像新建容器并运行。如果本地没有镜像则从docker hub上拉取。
--name 为容器指定名称。
-d    后台运行容器,并返回容器id
-i    交互模式运行容器,通常与 -t同时用
-t    为容器分配伪输入终端。
-P    随机端口映射
-p    指定端口映射,有以下四种格式
    ip:hostport:ContainerPort
    ip::containerPort
    HostPort:ContainerPort
    ContainerPort
docker run centos       #创建/运行/退出容器
docker run -t centos    #创建容器,并进入伪终端,但不能操作。ctrl+c 退出,容器不退出。
docker run -it centos
docker run -it --name mycentos centos
docker run -d centos    #以后台进程方式创建容器并运行,但因为没有可交互的前台进程,所以又被立刻终止。故docker ps 看不到。
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest a55fbf438dfd days ago 95MB
mysql latest 7bb2586065cd days ago 477MB
nginx latest 2bcb04bdb83f days ago 109MB
centos latest 9f38484d220f weeks ago 202MB
hello-world latest fce289e99eb9 months ago .84kB
docker run -it 9f38484d220f #启动交互式容器
[root@8e0ffee781f1 /]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root : pts/ :: /bin/bash
root : pts/ :: ps -ef
[root@8e0ffee781f1 /]# exit
exit
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8e0ffee781f1 9f38484d220f "/bin/bash" minutes ago Exited () minutes ago pensive_lumiere
3af63c5c69c6 hello-world "/hello" hours ago Exited () hours ago pensive_dubinsky
[root@localhost ~]# docker rename 8e0ffee781f1 mycentos
[root@localhost ~]# docker start mycentos
mycentos
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8e0ffee781f1 9f38484d220f "/bin/bash" minutes ago Up seconds mycentos
[root@localhost ~]# docker stats mycentos
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
8e0ffee781f1 mycentos 0.00% 380KiB / .2MiB 0.04% 656B / 0B 0B / 0B
[root@localhost ~]# docker top mycentos
UID PID PPID C STIME TTY TIME CMD
root : pts/ :: /bin/bash
[root@localhost ~]# docker attach mycentos
不关容器,安全退出: ctrl +p ctrl+q
[root@localhost ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8e0ffee781f1 9f38484d220f "/bin/bash" hours ago Up hours mycentos
[root@localhost ~]# docker images centos
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 9f38484d220f weeks ago 202MB
[root@localhost ~]# docker run -it --name mycentos01 centos #重新打开一个容器,并命名为mycentos01
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ed1315df6320 centos "/bin/bash" About a minute ago Up About a minute mycentos01
8e0ffee781f1 9f38484d220f "/bin/bash" hours ago Up hours mycentos

2.列出容器

docker ps -a    显示当前或曾经打开的容器
docker ps -l    显示上一次运行的容器
docker ps -n 3  显示上3次运行的容器
docker ps -ql   只显示上一次运行的容器ID

3.退出容器

exit    #退出并关闭容器
ctrl+p,crl+q #退出但不关闭容器

4.停止容器

docker stop  容器 ID或name
docker stop -t n 容器 ID或name # Seconds to wait for stop before killing it (default 10) 杀掉容器前等待多少秒(默认10s)
直接关闭
docker kill 容器 ID或name
[root@localhost ~]# docker stop mycentos mycentos01    #同时停止多个容器
mycentos
mycentos01
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

4.启动容器

docker start    容器 ID或name
docker restart  容器 ID或name
[root@localhost ~]# docker start mycentos mycentos01
mycentos
mycentos01
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ed1315df6320 centos "/bin/bash" minutes ago Up seconds mycentos01
8e0ffee781f1 9f38484d220f "/bin/bash" hours ago Up seconds mycentos

5.重启容器

docker restart 容器 ID或name

6.删除停止运行的容器

docker rm 容器 ID或name
docker rm -f 强制删除容器,即使在运行
docker rm -f $(docker ps -qa)      # 删除全部容器
docker ps -qa | xargs docker rm    # 删除全部已停止容器
docker rmi 删除镜像
[root@localhost ~]# docker ps -n2
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ed1315df6320 centos "/bin/bash" minutes ago Exited () minutes ago mycentos01
8e0ffee781f1 9f38484d220f "/bin/bash" hours ago Exited () minutes ago mycentos
[root@localhost ~]# docker rm mycentos01
mycentos01
[root@localhost ~]# docker ps -n2
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8e0ffee781f1 9f38484d220f "/bin/bash" hours ago Exited () minutes ago mycentos
3af63c5c69c6 hello-world "/hello" hours ago Exited () hours ago pensive_dubinsky

7.查看所有容器的实时资源占用情况

docker stats

8.查看容器日志

docker logs -f -t --tail 10 容器 ID或name
-f 持续刷新最新日志
-t 显示时间戳
--tail 显示最后几行
[root@localhost ~]# docker run -d --name mycentos1 centos
ba18b348bd9857bde9b25a62d848d6239c1c7c0de302a8bc279185a758efd861
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost ~]# docker run -d --name mycentos2 centos /bin/bash -c "while true;do echo Hello World;sleep 3;done"
21494ef841e27c69877afaf1a0be5ae2bb7d32d6862eb7bfa1e6eb237f04efa3
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
21494ef841e2 centos "/bin/bash -c 'while…" seconds ago Up seconds mycentos2
[root@localhost ~]# docker logs -f -t --tail 21494ef841e2
--04T07::.721260403Z Hello World
--04T07::.721904929Z Hello World
--04T07::.723204790Z Hello World
--04T07::.724042843Z Hello World
--04T07::.725116649Z Hello World
...

9.查看容器内进程

docker top 容器 ID或name
[root@localhost ~]# docker run -d centos /bin/bash -c "while true;do echo Nihao;sleep 2 ;done"
4768a70886fcb74cdf00cb19d142fb503a18d2390406dc31ad533d697b423f46
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4768a70886fc centos "/bin/bash -c 'while…" seconds ago Up seconds affectionate_cori
[root@localhost ~]# docker top 4768a70886fc
UID PID PPID C STIME TTY TIME CMD
root : ? :: /bin/bash -c while true;do echo Nihao;sleep ;done
root : ? :: sleep

10.查看容器细节

docker inspect 容器 ID或name
[root@localhost ~]# docker inspect 4768a70886fc
[
{
"Id": "4768a70886fcb74cdf00cb19d142fb503a18d2390406dc31ad533d697b423f46",
"Created": "2019-04-04T07:48:20.460764642Z",
"Path": "/bin/bash",
"Args": [
"-c",
"while true;do echo Nihao;sleep 2 ;done"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
....
11.进入容器
docker attach 容器 ID或name
docker exec -t -w -u -e 容器 ID或name 命令              # 功能更强大,也能实现登陆容器内部
  -d, --detach Detached mode: run command in the background
  -e, --env list Set environment variables
  -i, --interactive Keep STDIN open even if not attached
  -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
[root@localhost ~]# docker exec -t -w /tmp -uroot -e LANG=en 4768a70886fc ls
ks-script-eC059Y yum.log
[root@localhost ~]# docker exec 4768a70886fc ls /tmp
ks-script-eC059Y
yum.log
[root@localhost ~]# docker exec -it 4768a70886fc ls /tmp
ks-script-eC059Y yum.log
[root@localhost ~]# docker exec -it 4768a70886fc /bin/bash
[root@4768a70886fc /]# ls
anaconda-post.log bin dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

12. docker cp

    Copy files/folders between a container and the local filesystem 在本地系统和容器间copy文件或文件夹
[root@localhost ~]# docker cp anaconda-ks.cfg 4768a70886fc:/home
[root@localhost ~]# docker exec 4768a70886fc ls /home
anaconda-ks.cfg [root@localhost ~]# docker exec -it 4768a70886fc ls /tmp
ks-script-eC059Y yum.log
[root@localhost ~]# docker cp 4768a70886fc:/tmp/yum.log /tmp
[root@localhost ~]# ls -l /tmp
总用量
-rw-------. root root 3月 : yum.log

docker run -d /bin/bash -c 的注意点

重启docker 后,会继续执行创建docker 时指定的脚本。
相当于该容器运行的是 镜像+shell 的组合模板。
docker attach 登陆容器后,如果command 命令是前台进程就会一直执行,而不能做其他操作。

Docker 常用命令——容器的更多相关文章

  1. docker常用命令与容器创建

    ################docker安装##################### Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE. 社区版是免费提供给个 ...

  2. docker常用命令,及进入Tomcat的WebApps发布目录(就是进入docker容器后台目录)

    docker常用命令,及进入Tomcat的WebApps发布目录(就是进入docker容器后台目录)   一.常用命令 1.显示所有的容器,包括未运行的 docker ps -a   2.启动容器.注 ...

  3. docker常用命令、镜像命令、容器命令、数据卷,使用dockerFile创建镜像,dockefile的语法规则。

    一.docker常用命令? 1. 常用帮助命令 1.1 docker的信息以及版本号 /* docker info 查看docker的信息 images2 docker本身就是一个镜像. docker ...

  4. 『现学现忘』Docker常用命令 — 21、容器常用命令(三)

    目录 13.进入正在运行的容器并以命令行交互 (1)方式一 (2)方式二 (3)attach和exec的区别 14.从容器内拷贝文件到主机上 15.Docker常用命令小结 (1)容器生命周期管理 ( ...

  5. 【Docker】(3)---linux部署Docker、Docker常用命令

    linux部署Docker.Docker常用命令 本次部署Linux版本:CentOS 7.4 64位. 说明: 因为Docker是基于Linux 64bit的 所以Docker要求64位的系统且内核 ...

  6. Docker常用命令(二)

    Docker常用命令 查看Docker所有正在运行的容器 docker ps 查看Docker已退出的容器 docker ps -a 查看Docker所有镜像 docker images 删除镜像 删 ...

  7. Docker应用二:docker常用命令介绍

     Docker常用命令使用介绍 docker中常用的命令: 1.docker search image_name:搜查镜像 2.docker pull image_name:从镜像库中拉去镜像 3.d ...

  8. Docker常用命令汇总,和常用操作举例

    Docker命令 docker 常用命令如下 管理命令: container 管理容器 image 管理镜像 network 管理网络 node 管理Swarm节点 plugin 管理插件 secre ...

  9. 1021 docker常用命令和Jenkins搭建

    docker常用命令 1.镜像管理 docker pull (镜像名) # 默认拉取最新版本的镜像 docker pull (镜像名:版本号) #拉取指定版本的镜像 docker push (镜像名) ...

随机推荐

  1. springmvc和spring的区别

    springmvc只是spring其中的一部分.spring 可以 支持 hibernate ,ibatis ,JMS,JDBC 支持事务管理, 注解功能,表达式语言,测试springmvc 就是一个 ...

  2. Exception in thread "main" java.lang.UnsatisfiedLinkError: no awt in java.library.path:

    Exception in thread "main" java.lang.UnsatisfiedLinkError: no awt in java.library.path: 这是 ...

  3. Python爬虫教程-11-proxy代理IP,隐藏地址(猫眼电影)

    Python爬虫教程-11-proxy代理IP,隐藏地址(猫眼电影) ProxyHandler处理(代理服务器),使用代理IP,是爬虫的常用手段,通常使用UserAgent 伪装浏览器爬取仍然可能被网 ...

  4. GPU 编程语言 Harlan

    Harlan 是一个声明式的.GPU 领域特定的编程语言.目前主要是用于技术实现和优化的测试用途.该语言很小,用于简化浏览新的分析器和优化. 支持的操作系统: Mac OS X 10.6 (Snow ...

  5. 《你不知道的JavaScript-上卷》笔记

    这段时间看了<你不知道的JavaScript>上卷,对很多知识有了重新的认识,所以在这里罗列一些知识点作为巩固. 作用域和闭包 词法作用域 变量赋值操作会执行的两个动作 答:编译器会在当前 ...

  6. intellij idea下面安装热部署插件 JRebel 5.2

    之前一直是用的eclipse的JRebel,因为现在的公司用的是idea,于是尝试了在idea下面安装,把安装的过程中出现的问题记录下. 1.首先是在 idea里面install JRebel,Fil ...

  7. zabbix共享内存报错cannot create semaphore set

    zabbix共享内存报错 cannot open log: cannot create semaphore set: [28] No space left on device 报错原因: kernel ...

  8. SQL点点滴滴_SQL分页查询

    假如tb_customer表中的数据量非常大,在显示时要分页显示而且每页只显示10条信息.为了效果我们取第三页的数据. 方法一:遍历两次表,取不同的数据. select top 10 * from t ...

  9. 五大常用算法之四:回溯法[zz]

    http://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741376.html 1.概念 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试 ...

  10. 获取表SQLSERVER 的表结构信息(字段名,长度,精度,类型,NULL,ID,PRI)

    select sys.columns.name, sys.types.name, sys.columns.precision,sys.columns.scale, sys.columns.is_nul ...