Docker基础入门实践
基本概念
Docker三个基本概念
- 镜像(Image)
- 容器(Container)
- 仓库(Repository)
镜像
镜像可以理解为只读模板,如包含一个centos操作系统环境
容器
Docker利用容器来隔离和运行应用,容器是从镜像创建的运行实例
注:镜像是只读的,容器在启动时创建一层可写层做为最上层
仓库
集中存放镜像文件的地方
Docker安装
CentOS安装Docker
CentOS6
$ yum install epel-release
$ yum -y remove docker
$ yum install docker-io
CentOS7
$ yum install docker
启动
$ service docker start
随系统自启动
$ chkconfig docker on
帮助
输入$ docker
会列表相关命令和介绍如何查看帮助
镜像
获取镜像
$ docker pull registry.aliyuncs.com/acs-sample/centos
镜像地址格式为[REGISTRYHOST/][USERNAME/]NAME[:TAG]
- 注册服务器:registry.aliyuncs.com
- 仓库:acs-sample/centos
- 标记:lastest
查看镜像
$ docker images
出现如下信息
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
registry.aliyuncs.com/acs-sample/centos latest bf8055dc372f 6 weeks ago 196.6 MB
- 仓库:来自哪个仓库
- 标记:通过tag来区分版本,如centos6、centos7
- 唯一ID
- 创建时间
- 大小
创建镜像
可以从DockHub获取已有镜像或通过dockerfile来创建
修改镜像
通过docker commit
来实现
步骤:
1.启动容器
$ docker run -it --name test registry.aliyuncs.com/xqh/centos6 /bin/bash
[root@1ca39db81ee1 /]#
2.安装wget,成功exit退出
$ yum install wget
3.提交更改,如果不指定tag会覆盖原有镜像
$ docker commit -m 'add wget' -a 'by xqh' 1ca39db81ee1 registry.aliyuncs.com/acs-sample/centos:2```
4.查看镜像,tag=2的包含wget的镜像已经生成
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
registry.aliyuncs.com/acs-sample/centos 2 1ca39db81ee1 57 seconds ago 255.7 MB
**修改Tag**
$ docker tag registry.aliyuncs.com/acs-sample/centos:2 test```
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
registry.aliyuncs.com/acs-sample/centos 2 1ca39db81ee1 16 minutes ago 255.7 MB
test latest 1ca39db81ee1 16 minutes ago 255.7 MB
上传镜像
把自己的镜像通过docker push
上传到仓库
导出和导入
$ docker save -o centos-test.tar registry.aliyuncs.com/acs-sample/centos:2
$ docker load -i centos-test.tar
删除镜像
用docker rm
来移除本地镜像,移除镜像前要先移除依赖这个镜像的容器
容器
新建并启动
新建并启动docker run
,如
$ docker run -it --name test registry.aliyuncs.com/xqh/centos6 /bin/bash
其中-t
选项让docker分配一个伪终端,-i
让容器的标准输入保持打开
启动已终止容器
用docker start
来启动一个已经停止的容器
后台运行容器
用docker run -d
来实现,如
$ docker run -d --name test registry.aliyuncs.com/acs-sample/centos /bin/sh -c "while true; do echo hello world; sleep 1; done"
用docker ps
来查看启动容器信息
[root@iZ23g3sxtunZ ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f23f49f7269c registry.aliyuncs.com/acs-sample/centos "/bin/sh -c 'while t 3 seconds ago Up 2 seconds test
用docker logs
来查看容器输出信息
[root@iZ23g3sxtunZ ~]# docker logs test
hello world
hello world
hello world
终止容器
通过docker stop
来终止容器,如
$ docker stop test
用docker ps -a
可以查看终止状态的容器
[root@iZ23g3sxtunZ ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f23f49f7269c registry.aliyuncs.com/acs-sample/centos "/bin/sh -c 'while t 4 minutes ago Exited (137) 4 seconds ago test
进入容器
用docker attach
进入容器当中
导入和导出
用docker export
和docker import
导出和导入容器
删除容器
用docker rm
来删除一个终止状态的容器
仓库
登录
登录官方仓库不需要指定地址
$ docker login
$ docker login --username=xxx@aliyun.com registry.aliyuncs.com
搜索镜像
用docker search
命令查看仓库中的镜像,如查询被收藏10次以上的centos镜像
[root@iZ23g3sxtunZ ~]# docker search -s 10 centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 1947 [OK]
jdeathe/centos-ssh CentOS-6 6.7 x86_64 / SCL/EPEL/IUS Repos /... 15 [OK]
jdeathe/centos-ssh-apache-php CentOS-6 6.7 x86_64 / Apache / PHP / PHP M... 13 [OK]
下载和上传镜像
用docker pull
和docker push
命令来下载和推送镜像,如
$ docker pull registry.aliyuncs.com/xqh/centos6-sshd
$ docker push registry.aliyuncs.com/xqh/centos6-sshd
私有仓库
指用户搭建一个本地仓库供私人使用
Docker基础入门实践的更多相关文章
- 微服务 + Docker + Kubernetes 入门实践 目录
微服务 + Docker + Kubernetes 入门实践: 微服务概念 微服务的一些基本概念 环境准备 Ubuntu & Docker 本文主要讲解在 Ubuntu 上安装和配置 Dock ...
- 小白学 Python 爬虫(4):前置准备(三)Docker基础入门
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- Docker基础入门
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...
- Docker基础入门及示例
Docker近几年的发展可谓一日千里,特别从是2013年随着一个基于LXC的高级容器引擎开源,到现在,其在linux和windows上都有了很好的支持,并且已经有很多公司将docker用于实际的生产环 ...
- Docker系列03—Docker 基础入门
本文收录在容器技术学习系列文章总目录 1.概念介绍 1.1 容器 1.1.1 介绍 容纳其它物品的工具,可以部分或完全封闭,被用于容纳.储存.运输物品.物体可以被放置在容器中,而容器则可以保护内容物. ...
- docker基础入门理解
本文简单的介绍了一下docker的一些优点,以及使用方法 1. 理解docker 1.1 docker是什么? 1.2 为什么要使用Docker? 2. docker安装 3. docker-容器,镜 ...
- docker基础入门之二
一.docker文件系统: linuxFS包括boot file system 和 root file system boot file system (bootfs),包含bootloader和ke ...
- 容器技术之Docker基础入门
前文我们了解了下LXC的基础用法以及图形管理工具LXC WEB Panel的简单使用,有兴趣的朋友可以参考https://www.cnblogs.com/qiuhom-1874/p/12904188. ...
- Docker系列01—Docker 基础入门
一.初识Docker和容器 1.1 什么是docker 容纳其他物品的工具,可以部分或完全封闭,被用于容纳.存储.运输物品.物体可以被放置在容器中,而容器则可以保护内容物. 容器? 容器就是在隔离的环 ...
随机推荐
- 一步步教你如何进行Xilinx SerDes调试
FPGA SERDES的应用需要考虑到板级硬件,SERDES参数和使用,应用协议等方面.由于这种复杂性,SERDES的调试工作对很多工程师来说是一个挑战.本文将描述SERDES的一般调试方法,便于工程 ...
- C语言变长參数的认识以及宏实现
1.认识 变长參数是C语言的特殊參数形式.比如例如以下函数声明: int printf(const char *format, ....); 如此的声明表明,printf函数除了第一个參数类型为con ...
- sendmail发件人邮箱设定命令
sendmail发件人邮箱设定命令 以前就碰到过设置发件人后缀的方式,这次迁移服务器居然忘记,从头开始记录下 1:第一种方法,修改/etc/hosts,据说sendmail使用hosts里面的本地 ...
- java - day09 - summerize
猜字母游戏 package day08_summerize; import java.util.Scanner; import java.util.Random; //猜字母游戏 /** * @aut ...
- [转]从输入url到页面加载完成的过程中都发生了什么事情
第一个问题:从输入 URL 到浏览器接收的过程中发生了什么事情? 从触屏到 CPU 首先是「输入 URL」,大部分人的第一反应会是键盘,不过为了与时俱进,这里将介绍触摸屏设备的交互. 触摸屏一种传感器 ...
- python 开发技巧(4)-- 用PyCharm实用技巧(我自己常用的)
pycharm快捷键 1.快速导入类 Ctrl + Alt + Space 2.追踪类和方法的定义 Ctrl + b 3.复制当前行 Ctrl + d 4.移动当前行 Ctrl + Shift + ( ...
- erlang 洗牌 shuffle
很简单的一个场景:一副扑克(54张)的乱序洗牌 shuffle_list(List) -> [X || {_, X} <- lists:sort([{random:uniform(), N ...
- Android实现录屏直播(二)需求才是硬道理之产品功能调研
请尊重分享成果,转载请注明出处,本文来自Coder包子哥,原文链接:http://blog.csdn.net/zxccxzzxz/article/details/54254244 前面的Android ...
- MySQL - 统计每个月生日的人数
Person表定义如下: create table person(id int primary key auto_increment, birthday datetime); Person 数据如下: ...
- JavaScript 代码块
JavaScript 语句通过代码块的形式进行组合. 块由左花括号开始,由右花括号结束. 块的作用是使语句序列一起执行. JavaScript 函数是将语句组合在块中的典型例子. 下面的例子将运行可操 ...