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. lnmp环境 开启pathinfo

    thinkphp url访问模式中 默认的pathinfo不起作用? 1.检查你的tp配置文件config.php URL模式 'url_model'=> '1', //URL模式 即pathi ...

  2. angular排序

    说点小案例angular的排序 <!DOCTYPE html> <html ng-app="mk"> <head> <meta chars ...

  3. 转:centos7.2安装jdk1.6和/etc/profile不生效问题

    转:centos7.2安装jdk1.6和/etc/profile不生效问题 转自:http://blog.csdn.net/cuker919/article/details/54178611 一.查看 ...

  4. Java内存模型(JMM)以及 垃圾回收机制 小结

    内存模型: 内存模型描述了程序中各个变量(实例域.静态域和数组元素)之间的关系,以及在实际计算机系统中将变量存储到内存和从内存中取出变量这样的底层细节,对象最终是存储在内存里面的,这点没有错,但是编译 ...

  5. (C# Window Service) Verify that you have sufficient privileges to start system services

    写了个Windows Service, 用Wix 写了个Installer,编译通过,生成了msi 安装文件,但是安装的时候总是提示: Product: KingPro Service -- Erro ...

  6. activiti查询

    一  1.根据当前任务id获得当前任务对象  Task task = processEngine.getTaskService().createTaskQuery().taskId(taskId).s ...

  7. 使用 npm 安装 Vue

    使用 npm 安装 Vue 需要 node.js 就不多说了(从 nodejs.org 中下载 nodejs ) (1)安装 Vue,在 cmd 里直接输入: npm install -g cnpm ...

  8. .net core系列之《.net core中使用MySql以及Dapper》

    当我们决定使用.Net Core开发的时候,就放弃使用SqlServer的打算吧.那应该选择哪个数据库呢?一般选择MySql的比较多. 接下来我们来演示在.Net Core中使用MySQL吧. 1.原 ...

  9. Python实例---三级菜单的实现[low]

    # version: python3.2.5 # author: 'FTL1012' # time: 2017/12/7 09:16 menu = { '陕西': { '西安': { '未名区': [ ...

  10. 团队作业—预则立&&他山之石(人月神教)

    1.团队任务 GitHub issues 1.2 团队计划 2.访谈任务 2.1采访对象 采访团队:龙威零式 采访时间:2017.10.23 采访形式:微信群 2.2采访内容 问:你们选题的时候有哪些 ...