美文网首页
02-Docker安装部署使用

02-Docker安装部署使用

作者: 斜杠青年潘前进 | 来源:发表于2019-10-23 14:47 被阅读0次

        Docker需要安装在64位的x86平台或ARM平台上(如树莓派),并且要求内核版本不低于3.10。但实际上内核越新越好,过低的内核版本可能会出现部分功能无法使用,或者不稳定。        用户可以通过如下命令检查自己的内核版本详细信息:

        [root@ps2 run]# uname -a

        Linux ps2 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

        Docker的安装可以从Docker公司官网上取得安装包(https://www.docker.com/community-edition#/download),一键安装使用,也可以在不同操作系统上采用自动化安装工具进行安装,总体来说比较简单,下面列举两个操作系统在线安装的例子:

    一、CentOS安装Docker

        Redhat Linux系列包括Redhat Enterprise Linux、Fedora Core、CentOS,此处以CentOS7为例安装 Docker 。

    root用户登录系统

    关闭防火墙

    [root@ps1 ~]# systemctl stopfirewalld.service

    [root@ps1 ~]# systemctl disablefirewalld.service

    更新yum源

    [root@ps1 ~]# yum clean all

    [root@ps1 ~]#yum update

    添加yum源 

    [root@ps1 ~]# vi /etc/yum.repos.d/docker.repo

    [dockerrepo]

    name=Docker Repository

    baseurl=https://yum.dockerproject.org/repo/main/centos/7/

    enableid=1

    gpgcheck=1

    gpgkey=https://yum.dockerproject.org/gpg

    安装docker引擎

    [root@ps2~]# yum install docker-engine

    已加载插件:fastestmirror,langpacks

    ...

    已安装:

    docker-engine.x86_64 0:17.05.0.ce-1.el7.centos

    作为依赖被安装:

    docker-engine-selinux.noarch:17.05.0.ce-1.el7.centos

    完毕!

    安装docker服务

    [root@ps2 ~]# systemctl enabledocker.service

    Created symlink from /etc/systemd/system/multi-user.target.wants/docker.serviceto /usr/lib/systemd/system/docker.service.

    启动docker引擎

    [root@ps1 ~]# systemctl startdocker

    测试docker是否启动成功

    [root@ps1 ~]# docker info

    Containers: 0

    Running: 0

    Paused: 0

    Stopped: 0

    Images: 0

    Server Version: 17.05.0-ce

    Storage Driver: overlay

    Backing Filesystem: xfs

    Supports d_type: true

    Logging Driver: json-file

    Cgroup Driver: cgroupfs

    Plugins:

    Volume: local

    Network: bridge host macvlan nulloverlay

    Swarm: inactive

    Runtimes: runc

    Default Runtime: runc

    Init Binary: docker-init

    containerd version:9048e5e50717ea4497b757314bad98ea3763c145

    runc version:9c2d8d184e5da67c95d601382adf14862e4f2228

    init version: 949e6fa

    Security Options:

    seccomp

    Profile: default

    Kernel Version:3.10.0-693.el7.x86_64

    Operating System: CentOS Linux 7(Core)

    OSType: linux

    Architecture: x86_64

    CPUs: 12

    Total Memory: 62.64GiB

    Name: ps1

    ID:ITPP:IAGG:RLRD:6POX:2FLP:OFVU:BL67:25UZ:THQK:GNZH:SB54:TLJA

    Docker Root Dir: /var/lib/docker

    Debug Mode (client): false

    Debug Mode (server): false

    Registry: https://index.docker.io/v1/

    Experimental: false

    Insecure Registries:

    127.0.0.0/8

    Live Restore Enabled: false

    WARNING: bridge-nf-call-iptables isdisabled

    WARNING: bridge-nf-call-ip6tablesis disabled

    [root@ps2 ~]# vim /etc/sysctl.conf

    添加:

    net.bridge.bridge-nf-call-ip6tables = 1

    net.bridge.bridge-nf-call-iptables = 1

    net.bridge.bridge-nf-call-arptables = 1

     重启

    docker info  警告消失

    升级centos 7内核

    以下情况需要升级内核:

    1. 使用 docker 的overlay 网络 (kernel >= 3.16)。

    2. 使用 overlayfs 作为 docker 镜像的存储文件系统( kernel >= 3.18)

    [root@ps2~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

    [root@ps2~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

    获取http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

    获取http://elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

    准备中...                          #################################[100%]

    正在升级/安装...

    ...

    已安装:

    kernel-lt.x86_640:4.4.127-1.el7.elrepo

    完毕!

    [root@ps2~]# grub2-set-default 0

    [root@ps2~]# reboot

    设置docker开机自启动

    [root@ps1 ~]# systemctl enabledocker

    二、Ubuntu安装Docker

    2.1 安装前检查:

    内核版本的检查

    $ uname -r

    存储驱动的检查

    $ ls -l/sys/class/misc/device-mapper/

    如果以上两个条件不满足,则需要升级内核版本

    2.2 安装Ubuntu维护的版本

    $ sudo apt-get install -y docker.io

    $ source/etc/bash_completion.d/docker.io

    $ docker -version

    2.3安装Docker 维护的版本

    1)检查APT的HTTPS支持情况

    $vi usr/lib/apt/methods/https文件是否存在

    $apt-get update

    $apt-get install -y apt-transport-https

    2)添加

    3)添加仓库的key

    4)安装

    简单过程:

    $ sudo apt-get install -y curl

    $ curl -sSL https://get.docker.com/ubuntu/ sudo|sh

    $ sudo docker version

    $ sudo docker run ubuntu echo‘hello world’

    三、Docker基本命令

    3.1 镜像相关操作

    对于镜像的操作就是操作image对象的,包括以下常用命令:  

    docker search      #从镜像仓库搜索一个镜像

    docker pull        #从仓库中拉一个镜像

    docker images     #显示本地所有的镜像列表

    dockerrmi        #删除一个镜像,正在被使用的镜像不能被删除的

    dockersave       #将一个镜像保存为一个tar包,带layers和tag信息

    $docker save nginx  >/home/chen/chensuozhangdaochu.tar

    dockerload       #从一个tar包创建一个镜像,和save配合使用

    $docker load   >/home/chen/chensuozhangdaochu.tar

    dockerhistory     #显示生成一个镜像的历史命令,说明该镜像是怎么产生的

    dockertag        #为镜像起一个别名

    dockerimport     #从一个tar包创建一个镜像,往往和export结合使用

    dockerbuild       #使用Dockerfile创建镜像(推荐) 

    dockercommit     #从容器创建镜像               

    3.2 容器的相关操作

    对于容器的操作就是操作container的,包括以下常用命令:  

    docker create        #创建一个容器但是不启动它

    例子:$ docker create -i -t--name=create_by_chen hub.c.163.com/library/centos  /bin/bash

    docker run           #创建并启动一个容器

    docker stop          #停止容器运行,发送信号SIGTERM

    docker start          #启动一个停止状态的容器

    docker restart        #重启一个容器

    docker rm           #删除一个容器

    docker kill           #发送信号给容器,默认SIGKILL

    docker attach        #连接(进入)到一个正在运行的容器

    docker exec         # Run a command in a runningcontainer  在已经运行的容器中运行一个命令,进入bash交互模式

    docker wait         #阻塞到一个容器,直到容器停止运行

    docker ps           #显示状态为运行(Up)的容器

    docker ps -a         #显示所有容器,包括运行中(Up)的和退出的(Exited)

    docker inspect       #深入容器内部获取容器所有信息,可以查看一个运行的和没有运行的容器,过滤(grep)看一下IP地址

    docker logs          #查看容器的日志(stdout/stderr)

    docker events        #得到docker服务器的实时的事件

    docker port          #显示容器的端口映射

    docker top           #显示容器的进程信息

    docker diff           #显示容器文件系统的前后变化

    docker rename       #重命名docker容器名

    docker cp         #从容器里向外拷贝文件或目录

    示例:从宿主机到容器$ docker cp /root/123.shtest:/root/123.sh

    示例:从容器到宿主机 $ docker cp

    test:/root/123.sh /root/123.sh

    docker export      #将容器整个文件系统导出为一个tar包,不带layers、tag等信息

    $ docker export  45d3e7388ccd > testchensuozhang.tar  

    注意:用户在哪个目录,导出的文件就在哪个目录,可以ls  看一下么 ,想导出导一个固定目录,加上目录就行了。如:$ docker export  45d3e7388ccd > /home/chen/testchensuozhang.tar

    3.3 Dockerfile小例子

    1)创建一个dockerfile文件

    $ touch dockerfile

    $ vi dockerfile

    FROM hub.c.163.com/library/nginx

    MAINTAINER chensuozhagn @qq.com

    RUN echo "hello chen this  is the first try by ChenSuozhang" >/usr/share/nginx/html/index.html

    EXPOSE 80

    #CMD 'nginx'

    2)利用dockfile创建一个新镜像

    $docker build -t web1.0:1.0  .

    备注:这里的. 表示使用当前目录的dockerfile

    3)检查是否创建了这个镜像

    $ docker images

    4)利用刚才创建的容器运行一个容器

    $ docker run  -it -p 8080:80 --name=chensuozhanggerenwangyef64d4b645d43  /bin/bash

    5)运行一下nginx

    $ root@5d317f7c19a9:/# nginx

    6)浏览器访问nginx服务

     

    相关文章

      网友评论

          本文标题:02-Docker安装部署使用

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