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. drupal7 STMP邮件模块配置

    drupal7.54 STMP  version = "7.x-1.6" 配置:   注意:上面的“用户名”需要和“站点信息”页面的电子邮件地址保持一致,邮件发送才能成功 ---- ...

  2. Mybatis学习第二天——mapper的动态代理

    传统的Dao层开发通过接口与实现类的方式,Mybatis中通过mapper动态代理是需要定义接口. 1.传统Dao层封装 那么可以将公共资源提取出来,剩余的封装成方法来实现.下面是UserDaoImp ...

  3. Android碎笔录3——点击跳转

    只要是view都能设置点击事件,不必要非得是Button. 要想实现跳转得三步走: 第一步.绑定 每个Layout都有一个一个java文件跟它绑定,这个Layout相关的代码都写在这个java文件里 ...

  4. 理解android中ListFragment和Loader

    一直以来不知Android中Loader怎么用,今天晚上特意花了时间来研究,算是基本上搞明白了,现在把相关的注释和代码发出来,以便笔记和给网友一个参考,错误之处还望大家给我留言,共同进步,这个例子采用 ...

  5. 网页简单布局之结构与表现原则(HTML/CSS)

    结构 样式 行为真正的分离 前端初级人员会在页面上单纯的用各个div把相关内容独立开: 前端中级人员明白相关属性的设置会给元素带来什么改变,从而减少div的书写: 前端高级人员会以及其简单的和稳定的方 ...

  6. *.vue文件的template标签内使用form标签

    由于form表单有重复提交的问题,所以在vue文件内直接使用form标签时需要注意这个问题,否则会导致页面重复刷新跳转不成功的问题 解决方案: <form @submit.prevent> ...

  7. 毕向东_Java基础视频教程第21天_IO流(1)

    第21天-01-IO流(对象的序列化) ObjectInputStream与ObjectOutputStream 被操作的对象需要实现Serializable接口(标记接口) 非必须, 但强烈建议所有 ...

  8. springboot整合fastdfs实现上传和下载

    FastDFS_Client源码 https://github.com/tobato/FastDFS_Client 友情提示:由于FastDFS_Client这个源码不是很多,并且目前没有找到相关文档 ...

  9. c# 操作临时数据---XML操作

    class Config { static string path; /// <summary> /// 配置文件的路径 /// </summary> public stati ...

  10. 简单的3proxy配置

    timeouts 1 5 30 60 180 1800 15 60log "D:\Program Files\3proxy-0.6.1-x64\cfg\3proxy.log" Dl ...