美文网首页docker
Docker入门之二(容器)

Docker入门之二(容器)

作者: 平头哥2 | 来源:发表于2019-02-27 14:28 被阅读0次

docker容器

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等 。

新建容器:

  1. 查看镜像
[root@langzi01 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               1.14.2              3982eec12629        44 hours ago        6.07 MB
docker.io/ubuntu    latest              47b19964fb50        2 weeks ago         88.1 MB
  1. 创建容器
[root@langzi01 ~]# docker create -it ubuntu:latest --创建容器的命令
4236b084b42c855973e1fb1696a8c8731f411a6e30c64d2813178e1967813077
  1. 查看新建容器
[root@langzi01 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
4236b084b42c        ubuntu:latest       "/bin/bash"         4 seconds ago       Created                                 gifted_tesla
  1. 新建容器状态是停止的,启动命令如下:
[root@langzi01 ~]# docker start 423  -- 423 表示容器ID 4236b084b42c 的前三个字母
423
[root@langzi01 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
4236b084b42c        ubuntu:latest       "/bin/bash"         12 minutes ago      Up 10 seconds                           gifted_tesla
  1. 新建容器并启动,将上面的两个步骤合并起来

docker run ubuntu /bin/echo 'helloworld'会输出helloworld,容器自动终止

[root@langzi01 ~]# docker run ubuntu /bin/echo 'helloworld' -- 
helloworld
[root@langzi01 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
8db017e7feca        ubuntu              "/bin/echo helloworld"   5 seconds ago       Exited (0) 4 seconds ago                       xenodochial_ritchie
4236b084b42c        ubuntu:latest       "/bin/bash"              15 minutes ago      Up 3 minutes                                   gifted_tesla

docker run参数解释可以参考:

官方文档:https://docs.docker.com/engine/reference/commandline/run/

  1. 启动一个终端,让用户进行输入:
[root@langzi01 ~]# docker run -t -i ubuntu:latest /bin/bash
root@5f3138275d84:/# pwd
/
root@5f3138275d84:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv

参数解释:-t : 让docker分配一个伪终端(pseudo-tty) 并绑定到容器的标准输入上, -i 则让容器的标准输入保持打开。

  1. 退出容器,推出容器后,容器状态自动停止:
先按 ctrl+p,再按 ctrl+q
  1. 守护状态运行容器:
[root@langzi01 ~]# docker run -d ubuntu /bin/sh -c "while true;do echo hello world; sleep 1; done"
c86f84d4f07d4e21b4d96d970e188d2247a412b3232cb074d0b049fa604c4036

终止容器

停止容器:

[root@langzi01 ~]# docker stop c86

启动已经停止的容器:

[root@langzi01 ~]# docker start c86

进入容器

docker attach(不常用), docker exec(常用), docker nsenter.

[root@langzi01 ~]# docker exec -ti 5f3138275d84 /bin/bash

删除容器

[root@langzi01 ~]# docker rm 5f3138275d84

导入和导出容器

  1. 导出

导出容器是指导出一个已经创建的容器到一个文件,不管此时这个容器是否是处于运行状态。

导出的命令格式为:docker export CONTAINERID

[root@langzi01 docker]# docker export c86f84d4f07d > test_for_run.tar

查看:

[root@langzi01 docker]# ls
test_for_run.tar

可以将这些导出的文件迁移到其他的服务器上,再导入到docker容器中。

  1. 导入容器,成为一个镜像
[root@langzi01 docker]# cat test_for_run.tar | docker import - test/run:v0.1
[root@langzi01 docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
test/run            v0.1                f893c04d639c        22 seconds ago      69.8 MB

既可以使用docker load命令来导入镜像库存储文件到本地镜像库,也可以使用docker import命令来导入一个容器快照到本地镜像库。两者的区别在于容器快照将会丢弃所有的历史记录和元数据信息,而镜像存储文件将保存完整记录,体积也会更大。此外从容器快照文件导入时,也可以重新指定标签等元数据。

相关文章

  • Docker入门与实战演示

    目录 什么是容器 Docker安装指南 Docker快速入门 Docker入门详解 如何开发容器化的Java程序 ...

  • Docker入门之二(容器)

    docker容器 镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜...

  • docker容器

    docker快速入门01docker快速入门02KVM和Docker的对比 什么是容器? 容器就是在隔离的环境运行...

  • docker入门了解

    docker名词 docker入门地址c/s模型,镜像,仓库,容器,docker daemon,dockerfil...

  • Docker入门操作

    docker目录 查看Docker运行状态 第一个docker入门 查看容器 怎样给容器起一个名字? 重启容器的几...

  • docker-compose搭建nginx+php+mysql

    前言 上一篇《docker入门——安装(CentOS)、镜像、容器》讲了docker镜像获取、启动容器等基本使用,...

  • Docker入门及centOS7下安装

    Docker入门及centOS7下安装 简介:利用go语言实现的应用容器引擎 docker引擎基础是linux容器...

  • Docker容器——在Github上面的一本关于Docker的书

    Docker容器——在Github上面的一本关于Docker的书籍 背景 日常我们...

  • Docker入门

    Docker入门 一、Docker简介 1.什么是Docker Docker 是一个开源的应用容器引擎,让开发者可...

  • 30分钟掌握docker的基本使用

    docker 入门 目标 基于centos 7实例操作安装docker 获取mysql镜像 构建一个mysql容器...

网友评论

    本文标题:Docker入门之二(容器)

    本文链接:https://www.haomeiwen.com/subject/umqfuqtx.html