【快学Docker】快速创建容器,容器常用命令
前言
容器是Docker的三大核心概念之一。简单地说,容器是独立运行的一个或一组应用,以及它们的运行态环境。对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用。通过这篇文章,我们来讲讲Docker容器的一些常用命令,如创建,停止,重启,暂停等等。
原创声明
本文发布于掘金号【Happyjava】。Happy的掘金地址:https://juejin.im/user/5cc2895df265da03a630ddca,Happy的个人博客:http://blog.happyjava.cn。欢迎转载,但须保留此段声明。
创建容器
新建容器
命令如下:
docker create <image>
使用create 命令创建的容器,默认处于停止状态,需要我们手动去启动容器。
新建并运行容器
命令如下:
docker run <image>
通过run命令创建的容器,默认是会运行的。
常用参数如下:
-i 让容器的标准输入保持打开
-t 分配一个伪终端
-d 容器处于守护进程运行
--name 设置容器的名字
-p 可以映射宿主机端口至容器端口,如 -p 8080:8081 ,左边为宿主机端口,右边为容器端口
-v 可以挂在宿主机目录至容器目录,如-v /data:/tmp/data,左边为宿主机目录,右边为容器目录。
如,一条实际运行容器的命令:
docker run -it -d --name my_ubuntu -p 8088:22 -v /root/ubuntu_data:/data ubuntu:latest /bin/bash
容器管理
查看容器列表
命令如下:
docker ps
docker ps 是查看正在运行的容器,可以添加-a 参数,查看所有容器的信息。
停止容器
停止容器的命令:
docker stop <container_name/id>
启动容器
docker start <container_name/id>
重启容器
docker restart <container_name/id>
删除容器
命令如下:
docker rm <container_id/name>
如果是正在运行的容器,会提示删除失败,可以通过 -f 参数强制删除。例如,删除正在运行的 my_ubuntu 容器:
docker rm -f my_ubuntu
容器日志
可以通过如下命令查看容器的日志:
docker logs <id/name>
暂停容器
docker pause <id/name>
通过docker ps 命令可以查看到容器的状态
恢复暂停的容器
docker unpause <id/name>
进入容器
如果我们创建容器时,使用了 -d 参数,那么容器就会在后台运行。那么,我们可以通过 docker attach 命令和 docker exec 命令连接到容器。
docker attach命令
docker attach 命令使用如下:
docker attach <container_name/id>
如,我这里连接创建的名为 my_ubuntu 的容器。
docker attach my_ubuntu
进入容器后,其实就跟ssh登录服务器效果似乎一样的:
docker attach连接容器,有一个致命的缺点,那就是当多个窗口同时attach到同一个容器时,所有窗口都会同步显示,当某个窗口阻塞了,那么所有的窗口都会被阻塞掉。例如,我通过两个终端attach到这个my_ubuntu容器,所有的操作都会被同步:
我在一个窗口输入东西,另外一个窗口也会同步。
也是因为这样,所以attach命令是比较少用的。
docker exec 命令
docker exec 本质上不是连接容器,而是在容器中执行命令,其用法如下:
docker exec -it <container_name/id> <exec>
其中<exec>是需要执行的命令,如在my_ubuntu容器下执行 /bin/bash 命令:
docker exec -it my_ubuntu /bin/bash
执行结果:
/bin/bash 这个命令,其实就是运行一个bash终端,所以我们就可以通过在容器中执行 /bin/bash命令来连接容器。
查看容器变更
容器也是支持查看变更的内容的,命令如下:
docker diff <name/id>
如,查看my_ubuntu的变更:
有三个符号,它们分别是:
提交容器
Docker也可以像git一样,可以把变动提交为新的镜像。命令如下:
docker commit <container_id/name> repo/name:tag
如,我把本地的my_ubuntu提交:
docker commit my_ubuntu test/ubuntu:personal
然后查看镜像:
提交后的镜像,可以推送到仓库上,方便测试部署等。
总结
容器作为Docker的三大核心概念之一,其有很多操作,本文也难以一一列举,只是列举出了本人认为比较常用的一些命令。
关注公众号领资料
搜索公众号【Happyjava】,回复【电子书】和【视频】,即可获取大量优质电子书和大数据、kafka、nginx、MySQL等视频资料
【快学Docker】快速创建容器,容器常用命令的更多相关文章
- docker快速创建轻量级的可移植的容器(一)
系列其他内容 docker快速创建轻量级的可移植的容器✓ docker&flask快速构建服务接口 docker&uwsgi高性能WSGI服务器生产部署必备 docker&gu ...
- docker系列四之docker镜像与容器的常用命令
docker镜像与容器的常用命令 一.概述 docker的镜像于容器是docker中两个至关重要的概念,首先给各位读者解释一下笔者对于这两个概念的理解.镜像,我们从字面意思上看,镜子里成像,我们人 ...
- docker快速搭建几个常用的第三方服务
本次和大家分享的内容是使用docker快速搭建工作中常用的第三方的服务,对于有一些互联网背景的公司来说,以下几个服务都是很需要的:redis,rabbit,elasticsearch: 本篇涉及内容深 ...
- Docker小白到实战之常用命令演示,通俗易懂
前言 上一篇大概认识了Docker,主要是从概念.架构.优点及流程方面进行阐述,并进行安装和体验: 接下来就开始进行实操学习,在演示过程中会针对关键的知识点进行归纳和总结,这里先从常用命令说起,来吧, ...
- docker学习笔记二:常用命令
docker学习笔记二:常用命令 查看docker常用命令 docker --help 返回结果如下: 其中常用的命令如下: 1.image相关操作 展示所有的image: 删除image: rmi ...
- docker 笔记 (5)常用命令
images 显示镜像列表 history 显示镜像构建历史 commit 从容器创建新镜像 build 从 Dockerfile 构建镜像 tag 给镜像打 ta ...
- Docker系列(7)- 常用命令(3) | 容器命令
容器命令 说明: 有了镜像才可以创建容器:下载一个centos镜像进行练习,相当于在Linux里面再见一个Linux虚拟机 [root@localhost ~]# docker pull centos ...
- Docker容器操作中常用命令集合
docker pull 从仓库获取所需要的镜像 docker images 显示本地已有的镜像. docker commit 提交更新后的副本. docker build 创建一个新的镜像 ADD 复 ...
- docker 容器管理常用命令
Docker 容器管理: docker create -it centos //这样可以创建一个容器,但该容器并没有启动: create Create a new container 创建一个容器: ...
随机推荐
- setCascadeOpacityEnabled
setCascadeOpacityEnabled Enable or disable cascade opacity, if cascade enabled, child nodes' opacity ...
- Scale9Sprite不要在初始化的时候setCapInsets
let scale9Sprite = new ccui.Scale9Sprite(filePath);scale9Sprite.setCapInsets(cc.rect(x,y,w,h)); 而非 l ...
- RTMP服务器搭建(nginx+rtmp)
参考文章:https://obsproject.com/forum/resources/how-to-set-up-your-own-private-rtmp-server-using-nginx.5 ...
- lminus
lminus是Synopsy自带的tcl list 操作command. 顾名思义,可以将两个list相减,即过滤掉两个list中相同的element,生成一个新的list,其实是用lsearch与l ...
- mediasoup-demo安装记录
环境CentOS 7 64位 VMWare12虚拟机(win10主机),安装好NodeJS 10.13(大于8.9就可以) 已按照GitHub说明拉下来代码,配置好Node环境,开始执行npm sta ...
- c#逐行读取文件到数组
/// <summary> /// 逐行读取文件到泛型数组 /// </summary> /// <param name="FilePath"> ...
- flex space-between最后一行对齐问题的解决方案
背景 常见的一个图文列表设计,通常是这样的,两端顶着容器,中间的间距平均分,如下图的某东商品列表的设计: 列表是这样自适应的,当视窗足够放多少个商品就放多少个,然后各个商品项目之间的间距平均分.由于每 ...
- git上传时出现ERROR: Repository not found.的解决办法
今天在上传时出现错误,原因是之前更改了gitee上的个人空间地址,导致找不到.需要重新配置 https://gitee.com/help/articles/4114#article-header0
- Docker - 容器的 连接 与 退出
概述 连接容器, 退出容器 命令 run exec attach 退出 选项 -i -t -d 1. docker run 概述 docker run 通常用来创建新容器 docker run 的 三 ...
- Spring - MVC - thymeleaf 缓存关闭
1. 概述 spring 配合 thymeleaf 关闭页面缓存 2. 背景 最近复习 spring 找了本书叫 spring in action 5th 本人水平有限 书还写得那么难 调试中遇到了问 ...