跟我一起学docker(四)--容器的基本操作

1.创建容器

Docker的容器十分轻量级,用户可以随时创建或删除容器。

新建容器:docker create

Example:docker create –ti ubuntu

说明:使用docker create命令创建的容器处于停止状态,可以使用docker start命令启动它。

新增加了一个name等于test_create的,status等于create

新建并启动容器:docker run

Example: docker run ubuntu/bin/echo “Hello World”

说明: 等价于先执行docker create命令,再执行docker start命令。

docker run 背后的故事:

1 检查本地是否存在制定的镜像,不存在就从公有仓库下载。

2 利用本地镜像创建并启动一个容器。

3 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层。

4 从宿主机配置的网桥接口桥接一个虚拟接口到容器中去。

5 从地址池配置一个IP地址给容器。

6 执行用户的指定的用户程序。

7 执行完毕后容器被终止。

一条简单的命令:

docker run -i –t ubuntu/bin/bash

-t : 让docker分配一个伪终端并绑定到容器的标准输入上。

-i : 让容器的标准输入保持打开。

在交互模式下,用户可以通过所创建的终端来输入命令,exit命令退出容器。

退出后,容器自动处于终止状态。

3秒前容器被退出了。

守护台运行:

更多的时候,需要让Docker容器运行在后台以守护态(daemonized)形式运行。用户可以通过

添加-d参数来实现。

Example:

docker run –d ubuntu/bin/sh -c “while true;do echo hello world;sleep 1;done”

补充:

查看日志: docker logs

docker logs –f 动态的查看日志,类似咱们查看tomcat的日志一样

2.终止容器

可以使用docker stop命令来终止一个运行中的容器。

docker stop

注意:

当容器中的应用终结时,容器也会自动停止。

查看终止的容器:docker ps -a

查看运行的容器:docker ps

重新启动容器:docker start

3.进入容器

在使用-d参数时,容器启动后会进入后台,用户无法看到容器中的信息。

docker exec

Exec可以直接在容器内部运行命令。

进入容器:

docker exec -i –t bash

run 运行一个容器后,进入容器的话,exit容器直接退出

exec进入容器后,exit容器不退出,仍在后台运行

4.删除容器

可以使用docker rm命令删除终止状态的容器。

如果删除正在运行的容器,需要停止容器在进行删除

不管容器是否运行,可以使用docker rm–f命令进行删除。

5.导入和导出容器

导出容器是指导出一个已经创建的容器到一个文件,不管容器是否处于运行状态。可以使用docker export命令。

docker export

Example:

Docker export test_id >test.tar

导出的文件又可以使用docker import命令导入,成为镜像。

Example:

cat export.tar | docker import - liming/testimport:latest

导入容器生成镜像,通过镜像生成容器,查看容器里面的内容

往期docker学习:

认识docker

核心概念和安装

容器的常用操作

原文地址:http://blog.51cto.com/12040702/2133490

时间: 2024-11-05 22:37:57

跟我一起学docker(四)--容器的基本操作的相关文章

Docker 镜像 && 容器的基本操作

镜像 && 容器 docker 镜像好比操作系统的镜像(iso) docker 容器好比是已安装运行的操作系统 所以说 docker 镜像文件运行起来之后,就是我们所说的 docker 容器了 Docker Image Operation 1)列出镜像 docker image ls -a 执行效果: 参数说明: REPOSITORY:镜像所在的仓库名称 TAG:镜像标签 IMAGEID:镜像ID CREATED:镜像的创建日期(不是获取该镜像的日期) SIZE:镜像大小 为了区分同一个仓

Asp.NetCore轻松学-使用Docker进行容器化托管

前言 没有 docker 部署的程序是不完整的,在写了 IIS/Centos/Supervisor 3篇托管介绍文章后,终于来到了容器化部署,博客园里面有关于 docker 部署的文章比比皆是,作为硬核实战派,这里做的一定是一套打完带走的功法.本文使用的学习机器是由 Azure 倾情提供的 30 天试用版本,大家都可以申请的哈. 1. 为什么要使用 docker 1.1 docker 介绍 docker 带来的好处是显而易见的,使用 docker 可以在同一台服务器上部署多个版本的应用,彼此间不

安装Docker-Win10环境-图解轻松学Docker&K8S

>>> 点我开始视频学习 <<< 在Docker环境下,它对于win10对于大多数的Linux系统都有良好的支持,作为Docker,我们来重新回顾一下.Docker的logo是一条鲸鱼,是典型的容器化技术代表. 它的特点主要有几个 第一它是开源的应用容器引擎基于go语言开发. 第二,因为上一节课我们讲过什么是容器化技术,所以容器化技术是完全使用沙箱的机制,而且部署的开销极低,也就是指在当前我们自己的操作系统中就可以部署多个容器应用了. 第三个目前容器化技术并不是只有Do

docker 四.使用docker镜像.

四.Docker镜像的使用 一.Docker 安装 1.1  查看系统版本 [[email protected] ~]# cat /etc/redhat-release CentOS release 6.6 (Final) 1.2 使用epel yum源 [[email protected]~]#rpm -ivh http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm 1.3安装docker [[email prote

小白学Docker之Compose

承接上篇文章:小白学Docker之基础篇,自学网站来源于https://docs.docker.com/get-started 概念 Compose是一个编排和运行多容器Docker应用的工具,主要是通过一个YAML文件进行服务配置. 使用Compose主要有三步: 在每个应用环境中配置一个Dockerfile,定义单个应用的镜像 使用docker-compose.yml来组装各个应用 运行docker-compose up命令来运行整个应用 一个基本的docker-compose.yml可能长

小白学Docker之Swarm

承接上篇文章:小白学Docker之Compose,自学网站来源于https://docs.docker.com/get-started 系列文章: 小白学Docker之基础篇 小白学Docker之Compose 小白学Docker之Swarm 概念 Docker Swarm 和 Docker Compose 一样,都是 Docker 官方容器编排项目,但不同的是,Docker Compose 是一个在单个服务器或主机上创建多个容器的工具,而 Docker Swarm 则可以在多个服务器或主机上创

docker: 四种网络模式

Docker 四种网络模式 四种网络模式摘自 Docker 网络详解及 pipework 源码解读与实践 docker run 创建 Docker 容器时,可以用 --net 选项指定容器的网络模式,Docker 有以下 4 种网络模式: host 模式,使用 --net=host 指定. container 模式,使用 --net=container:NAMEorID 指定. none 模式,使用 --net=none 指定. bridge 模式,使用 --net=bridge 指定,默认设置

跟我一起学docker(11)--jenkins+github+Docker

Github+Jenkins+Docker持续集成 这次要做的就是我本地git push到github后,jenkins自动构建 注意:本次课程jenkins必须有公网ip,保证github可以通知jenkins构建. 公网ip服务器 登陆github https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/ 一路回车 1.配置Github 设置秘钥登录 生成密钥: 在git

Docker之容器常见操作

一.启动容器 启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped ) 的容器重新启动.因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器. 新建并启动 例如,下面的命令输出一个 "Hello World",之后终止容器. $ docker run ubuntu:14.04 /bin/echo 'Hello world' Hello world 这跟在本地直接执行 /bin/echo 'hello world' 几乎感