docker 安装

Docker是完整的一套容器管理系统,提供了一组命令,让用户更加方便直接地使用容器技术,而不需要过多关心底层内核技术

一 .安装前准备:(需要64位操作系统                至少RHEL6.5以上的版本,强烈推荐RHEL7)

1.1   自定义yum源

cp  docker-engine*   /var/ftp/public
cd /var/ftp/public
createrepo  .

vim     /etc/yum.repos.d/docker.repo

[local_docker]
name=CentOS docker
baseurl="ftp://192.168.1.254/public"
enabled=1
gpgcheck=0

1.2  修改主机名 和静态ip

echo docker01 >/etc/hostname
vim      /etc/sysconfig/network-scripts/ifcfg-eth0 
.....
BOOTPROTO="static"
IPADDR="192.168.1.11"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.254"

1.3  安装

yum   -y    install    docker-engine     

查看版本  : docker  version

设置开机自启动        systemctl enable docker
重启虚拟机                reboot

二.Docker镜像

在Docker中容器是基于镜像启动的,镜像是启动容器的核心,镜像采用分层设计,使用快照的COW技术,确保底层数据不丢失

Docker   hub 镜像仓库

https://hub.docker.com
Docker官方提供公共镜像的仓库(Registry)

下载镜像 :docker pull rhel7

上传镜像 : docker push rhel7

导入镜像:  docker load < xx.tar           查看 :docker    images

到处镜像 : docker save image_name > xx.tar

查看命令帮助 :docker help  命令

搜索镜像  : docker search 关键字

启动镜像 : docker  run  -it   镜像的名字:标签    /bin/bash

查看镜像底层信息 : docker    inspect   镜像名

删除本地镜像 : docker  rmi   镜像名:标签    (注意:启动容器时删除镜像会提示错误)

重命名镜像名称(复制) : docker   tag   centos:latest       test:test

三.容器常用命令

使用镜像启动容器  :   docker run -itd centos bash   (-i 交互式     -t 终端    -d 后台进程)

列出容器列表  :   docker   ps   -a   查看所有容器列表        docker  ps  -aq    仅显示容器id

管理容器  : docker stop|start|restart

进入容器 : docker attach|exec

                      – docker attach 进入容器,exit会导致容器关闭
                      – docker exec 进入容器,退出时不会关闭容器

查看容器底层信息  : docker inspect   容器id

查看容器进程列表  :  docker   top   容器id

删除容器    :    docker     rm   容器id

容器另存为一个镜像 : docker  commit   容器id  镜像名称:标签

自定义镜像 :Dockerfile    语法格式
                         – FROM:基础镜像
                         – MAINTAINER:镜像创建者信息
                         – EXPOSE:开放的端口
                          – ENV:设置变量
                          – ADD:复制文件到镜像
                          – RUN:制作镜像时执行的命令,可以有多个
                          – WORKDIR:定义容器默认工作目录
                          – CMD:容器启动时执行的命令,仅可以有一条CMD

举例: vim   Dockerfile

FROM myos
RUN  yum install -y httpd
WORKDIR /var/www/html
RUN  echo "hello nsd1804" >index.html
ENV  EnvironmentFile=/etc/sysconfig/httpd
EXPOSE 80
CMD  ["/usr/sbin/httpd", "-DFOREGROUND"]

四. 创建私有仓库

4.1  安装registry     : docker pull registry

4.2添加配置   vim /etc/docker/daemon.json
     {
     "insecure-registries" : ["192.168.1.10:5000"]
      }

4.3 给镜像打标记 :  docker tag 镜像 IP:5000/镜像:label

4.4 完成配置以后重启 docker 服务  : systemctl restart docker

4.5 启动私有仓库服务 : docker run -d -p 5000:5000 registry

4.6上传镜像 : docker push IP:5000/镜像:label

查看私有仓库有什么样的镜像      curl http://192.168.1.11:5000/v2/_catalog

查看私有仓库的镜像有什么样的标签     curl http://192.168.1.11:5000/v2/镜像名/tags/list

五. 持久化存储

docker容器不保持任何数据,重要数据请使用外部卷存储(数据持久化),容器可以挂载真实机目录或共享存储为卷

共享存储基本概念

 一台共享存储服务器可以提供给所有Docker主机使用共享存储服务器(NAS、SAN、DAS等)
如:
– 使用NFS创建共享存储服务器
– 客户端挂载NFS共享,并最终映射到容器中

存储卷映射 :    docker run     -itd    -v     物理机文件夹:容器内文件夹       镜像:标签

六.Docker 网络架构

查看默认Docker创建的网络模型  :  docker   network  list

yum    -y    install    bridge-utils

查看网卡 : brctl     show  

新建Docker 子网 : docker   network   create    --subnet=192.168.100./24   test01

启动容器,使用刚刚创建的自定义网桥 : docker   run  --network=test01   -id    nginx

客户端访问容器内的内容 : (默认容器通过SNAT可以访问外网, 但外部网络的主机不可以访问容器内的资源,使用端口映射可以实现外部网络访问容器内的资源)

docker      run    -d     -p     80:80      -v      /var/data:/var/www/html      myos:httpd

    

 

 

 

你可能感兴趣的:(docker)