17-Docker镜像和容器操作
镜像
拉取镜像(下载镜像)
镜像是层次型的,拉取的时候会按照各层分别拉取。
每一个镜像都有自己的散列值,用来唯一标记一层镜像,可以用来判断本地是否已经拉取过此镜像层,如果已经拉取,则直接使用。
docker image pull centos:7 #拉取镜像centos:7
输出:
7: Pulling from library/centos #
ab5ef0e58194: Pull complete #先下载压缩包,再解压,最后显示Pull complete
Digest: sha256:4a701376d03f6b39b8c2a8f4a8e499441b0d567f9ab9d58e4991de4472fb813c #镜像的散列值
Status: Downloaded newer image for centos:7
docker.io/library/centos:7
[root@localhost ~]# docker image pull nginx
Using default tag: latest
latest: Pulling from library/nginx
68ced04f60ab: Pull complete #这里代表这个镜像那个有三层
28252775b295: Pull complete
a616aa3b0bf2: Pull complete
Digest: sha256:2539d4344dd18e1df02be842ffc435f8e1f699cfc55516e2cf2cb16b7a9aea0b
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
查看镜像
[root@localhost ~]# docker image ls #查看所有镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 6678c7c2e56c 2 weeks ago 127MB
centos 7 5e35e350aded 4 months ago 203MB
#解释
#IMAGE ID:镜像的ID(唯一标识镜像), 如果两个镜像的ID 相同, 说明它们实际上指向了同一个镜像
#参数
-a #显示所有镜像(包括中间层镜像)
-q #只显示IMAGE ID
docker images #和docker image ls一样
[root@localhost ~]# docker image history 5e35 #查看镜像构建历史
IMAGE CREATED CREATED BY SIZE COMMENT
5e35e350aded 4 months ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B
<missing> 4 months ago /bin/sh -c #(nop) LABEL org.label-schema.sc… 0B
<missing> 4 months ago /bin/sh -c #(nop) ADD file:45a381049c52b5664… 203MB
- 在Docker中,镜像和容器都有自己的散列值,我们输入前面几个散列值既可操作这个镜像和容器。如上例中的5e35
docker inspect 5e35 #查看镜像或容器的详细信息
docker search centos #在仓库中搜索centos的镜像
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 5892 [OK]
ansible/centos7-ansible Ansible on Centos7 128 [OK]
jdeathe/centos-ssh OpenSSH / Supervisor / EPEL/IUS/SCL Repos - … 114 [OK]
consol/centos-xfce-vnc Centos container with "headless" VNC session… 111 [OK]
centos/mysql-57-centos7 MySQL 5.7 SQL database server 71
imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 58 [OK]
#解释:
#NAME:镜像名
#DESCRIPTION:代表镜像描述
#STARS:标星数(标星数越大代表越多人关注)
#参数:
docker search --filter=stars=100 centos #只显示100星以上的镜像
修改镜像tag
docker image tag centos:7 centos:eagle #将centos:7的tag改为centos:eagle
删除镜像
docker image rm centos:7 #删除镜像centos:7
导入导出镜像
- 导出
docker image save -o /root/centos_7.tar centos:7
- 导入
docker image load -i centos_7.tar
容器
容器是一个动态的,是根据镜像启动的。就好像一个应用。
从一个例子入门
docker run centos:7 echo 'Hello world' #根据镜像centos:7启动一个容器
#默认前台启动,输出'Hello world'之后退出
通常情况下,会运行一个后台程序:如nginx,我们希望容器后台运行:
[root@localhost ~]# docker container run -d -it centos:7 #根据镜像centos:7后台运行容器
d29b0344b210bec7d251beb30a392c4d9bf384a8e8a81ab22eaa9d86ca88c6ba #容器的散列值,唯一标记该容器
#参数解释:
-d #后台运行
-it #分配一个交互界面(否则无法进入)
docker exec -it d29b bash #进入容器d29b
#参数解释:
-it #分配一个交互界面(否则无法进入)
bash #使用bash进行交互
- 退出容器使用命令
exit
运行容器
docker container run -d -it centos:7 bash
-it #分配一个交互界面(否则无法进入)(通常和参数bash一起用)
bash #使用bash进行交互(通常和参数-it一起用)
--name mycentos #给容器命名为mycentos
-h fight #设置容器主机名
-d #后台运行(可使用-it前台运行),并返回ID
--rm #运行结束之后删除容器
--privileged #给予特权
停止容器
docker container stop 9f4s #不会删除存储层
启动容器
docker container start d29b #启动
docker container restart d29b #重启
删除容器
docker container rm 9f4s #删除一个已经退出的容器
-f #强制删除一个容器(即使正在运行)
查询容器
docker container ls #查看Up状态的容器
-a #查看所有容器(包括退出的容器)
-q #只显示容器id
docker container inspect 04b7 #查看容器的详细信息
Docker网络管理
容器默认连接到docker0这个网段(可以使用
ip a查看)
- 容器网络设置
--network #指定网络(默认docker0)
--ip #指定ip(docker0不支持指定)
- 容器端口映射
docker container run --name web1 -p 8080:80 -d nginx #将本机的8080端口 映射到 容器的80端口
firewall-cmd --add-port=8080/tcp
firewall-cmd --add-port=8080/tcp --per
#测试:http://192.168.191.131:8080/ (替换成你的CentOS的地址)
- 其他网络参数
-p 192.168.159.129::80/udp #随机分配一个端口,并指定协议
-P #随机端口映射
--dns 11.11.11.11 #指定容器的DNS服务器
导出导入容器
docker container export -o /root/centos_eagle.tar 088c #导出容器
docker import centos_eagle.tar #导入容器(导入后成为一个镜像,没有名字,也没有tag,可以使用tag命令修改)
17-Docker镜像和容器操作的更多相关文章
- docker镜像和容器的导出导入
本文介绍docker镜像和容器的导入导出,用于迁移.备份.升级等场景.主要用到export.import.save.load四个方法. 原文地址:代码汇个人博客 http://www.codehui. ...
- Docker镜像和容器
本节内容: 安装Docker 卸载docker 镜像基本操作 容器基本操作 一.安装Docker Docker 对 Linux 内核版本的最低要求是3.10,如果内核版本低于 3.10 会缺少一些运行 ...
- docker镜像与容器
目录 docker镜像与容器 概述 分层存储 镜像与容器 删除镜像与容器 将容器中的改动提交到镜像 慎用 docker commit--构建镜像推荐使用dockerfile docker镜像与容器 概 ...
- 三、Docker镜像的相关操作
原文:三.Docker镜像的相关操作 一.查看本地镜像: docker images 二.使用某个镜像来运行容器: docker run -t -i xxxx(镜像名):xx.xx(版本,不带即最新) ...
- docker系列四之docker镜像与容器的常用命令
docker镜像与容器的常用命令 一.概述 docker的镜像于容器是docker中两个至关重要的概念,首先给各位读者解释一下笔者对于这两个概念的理解.镜像,我们从字面意思上看,镜子里成像,我们人 ...
- Docker容器化【Docker镜像与容器相关命令】
# Docker 学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器的概念 完成Docker安装与启动 掌握Docker镜像与容器相关命令 掌握Tomcat Nginx 等软件的常用 ...
- docker 入门(docker 镜像 、容器、仓库)
一.关于docker 镜像 .容器.仓库之间的关系 镜像(Image): 类似于虚拟机 的镜像 容器(Container): 类似于操作系统(或者说是独立的软件), 由镜像可以创建大量的容器. 仓库( ...
- 【docker专栏8】使用IDEA远程管理docker镜像及容器服务
使用命令行的方式管理服务器镜像及容器是运维人员最常用的方式,但是有的时候我们不得不远程操作docker或者是面向对docker并不熟悉的技术人员提供能力(配置管理员.测试人员),这种情况下图形界面就有 ...
- 快速批量删除 docker 镜像或容器
原文:快速批量删除 docker 镜像或容器 点击在我的博客 xuxusheng.com 中查看,有更好的排版哦~ docker 本身并没有提供批量删除的功能,当有大量的镜像或者容器需要删除的时候,手 ...
- Docker镜像与容器的常用操作
Docker镜像加速配置:Docker镜像常用操作:Dcoker容器常用操作. 镜像加速器 国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器.国内很多云服务商都提供了国内加 ...
随机推荐
- dotnet 6 在 win7 系统 AES CFB 抛出不支持异常
本文记录在 win7 系统上调用 AES 加密时,采用 CFB 模式,可能抛出 CryptographicException 异常 可以看到抛出的异常提示是 System.Security.Crypt ...
- Raft 共识算法1-Raft基础
Raft 共识算法1-Raft基础 Raft算法中译版地址:http://www.redisant.cn/etcd/contact 英原论文地址:https://raft.github.io/raft ...
- springboot+kafka(centos7集群部署kafka)
1.kafka简介 1.1:Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动 ...
- 使用 Docker 搭建 gitea 私有仓库
一.准备材料 安装环境:linux 工具:docker 软件:MySql.gitea 二.安装Docker 安装Docker:https://www.cnblogs.com/jzcn/p/156937 ...
- 15、数据库加固-redis 加固
1.禁止网络访问 Redis 服务 更改配置文件,使服务监听本地回环地址 修改 redis 配置文件:vi 安装路径/redis.conf 确保:bind 127.0.0.1(::1:表示 ipv6 ...
- 08. rails 创建user控制器-用户添加
创建控制器 如果创始的数据模型是对应一张表,那么要使用复数的形式 例如给users表创建一个控制器 rails g controller users 路由 config/routes.rb里添加 re ...
- cesium基础知识汇总PPT版
以上教程来自火星科技,原视频教程地址如下: https://ke.qq.com/course/468292/3985600802137412#term_id=100560563
- 网络安全—Kerberos认证系统
文章目录 前提知识 原理 第一次对话 第二次对话 第三次对话 总结发现 前提知识 KDC:由AS.TGS,还有一个Kerberos Database组成. Kerberos Database用来存储用 ...
- Authentication failed. Some common reasons include:
问题无论是pull.clone还是push都报错 fatal: Out of memory, malloc failed (tried to allocate 301989888 bytes)fata ...
- 你不知道的PageContext
你不知道的PageContext 最近在文艺复兴,学习JSP和Servlet,此文为笔者学习记录. 本文分为以下几个部分: 前言 环境搭建 正文 总结 前言 在我们使用的项目中,存储数据最常用的非 S ...