码迷,mamicode.com
首页 > 系统相关 > 详细

Linux 系统中 Docker 容器安装及使用

时间:2018-09-07 22:51:08      阅读:376      评论:0      收藏:0      [点我收藏+]

标签:ges   完成   device   gis   卸载   随机   图片   res   etc   

Docker

简介

产生背景

项目的开发环境和部署环境不一致,部署环境配置难度大。集群技术的发展,集群的相同配置操作难度大。

基本理念

使用Go语言实现的云开源项目,"一次编译,处处运行",只需要一次配置环境,就可以在其他环境一键部署,软件即容器,虚拟化。

虚拟化技术

虚拟机:一种带环境安装的解决方案,模拟整套操作系统,笨重。

容器:将所有运行环境打包成互相隔离的容器,不进行硬件虚拟。

开发/运维(DevOps)

开发自运维、一次开发,处处运维。

官方资料

Docker
Docker中文
Docker Hub


环境安装

系统要求

    1. CentOS 7(64位)
    2. CentOS6.5(64位)及以上
    3. 系统内核版本为2.6.32-431以上

基本结构

技术分享图片

  1. 镜像(image):只读模板,一个镜像可以创建多个容器。
  2. 容器(container):运行一个或多个应用,简易版Linux。
  3. 仓库(repository):集中存放镜像,私有库、公有库。

安装方法

CentOS 6.8 安装

  1. yum install -y epel-release
  2. yum install -y docker-io
  3. vi /etc/sysconfig/docker
  4. service docker start
  5. 验证安装

CentOS 7 安装

1. yum install -y yum-utils    device-mapper-persistent-data    lvm2

2. yum-config-manager --add-repo \    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3. yum-config-manager --enable docker-ce-edge

4. yum-config-manager --enable docker-ce-test

5. yum-config-manager --disable docker-ce-edge

6. yum install docker-ce

#安装特定版本
7. yum list docker-ce --showduplicates | sort -r

   yum install docker-ce-<VERSION STRING>

8. systemctl start docker   #开启

#测试 会自动跑一个hello 容器
docker run hello-world
   
#####以上是官方给出的方法################################
############实际我第一次安装只用到了下面的命令#############

#下载一个repo 到repo的文件夹中
wget https://mirrors.aliyun.com/dockerce/linux/centos/docker-ce.repo

#使用yum 命令安装docker-ce 也就是docker 社区版
yum install docker-ce -y

Hello World

阿里镜像仓库

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-‘EOF‘
{
  "registry-mirrors": ["https://l608quqb.mirror.aliyuncs.com"]
}
EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

#开机自动启动
sudo systemctl enable docker

运行Hello World:docker run hello-world

运行原理

C/S结构,应用程序及其环境运行在容器中,比虚拟机有更少的抽象层,利用宿主内核,不虚拟硬件,不虚拟新的容器运行环境,利用宿主启动速度快。

常用命令

帮助命令

docker version
docker info
docker help

镜像命令

docker imgages  [-a][-q]            
docker search [-s]
docker pull
docker rmi -f [name:version][ID]
docker rmi -f $(docker -q)  删去全部

容器命令

#启动方式
docker run -i -t centos         进入了CentOS
-d:以后台运行容器,返回容器ID,守护式容器
-i:以交互模式运行容器
-t:为容器重新分配终端
-P:随机端口映射
-p:指定端口映射
    ip:hostPort:containerPort
    ip::containerPort
    hostPort:containerPort
    containerPort
    
#查看容器使用历史
docker ps 
-a:运行中+历史
-l:最近创建
-n:最近n个
-q:静默模式
--no-trunc:不截断输出
宿主bash:exit:退出并关闭
         ctrl+p+q:返回主机
#返回容器
docker attach [id] 返回容器

#停止容器
docker restart/stop [name][id]
docker kill [name][id]
#删除容器
docker rm -f $(docker -a -q)        删除容器
dockeer -a -q |xargs docker rm -f   批量删除容器
docker log
docker top [id]
docker inspect [id]
docker cp [id]
####################
docker run -itd [id]:uri uri

镜像

联合文件系统(UnionFS)

一种分层、轻量级并且高性能的文件系统,支持对文件系统的修改作为一次提交来一层层低价,可以将不同目录挂在到同一个虚拟文件系统下。

镜像加载原理

bootfs(boot file system):包含Bootloader和Kernel,镜像最底层为bootfs,加载完成后,内核导入内存,内存使用权转交给内核,卸载bootfs。

rootfs(root file system):包含/dev、/bin、/et等标准目录和文件。

Linux 系统中 Docker 容器安装及使用

标签:ges   完成   device   gis   卸载   随机   图片   res   etc   

原文地址:https://www.cnblogs.com/Wu-Zang/p/9607312.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!