zoukankan      html  css  js  c++  java
  • 03-运行第一个docker容器

    环境选择

    容器需要管理工具、runtime 和操作系统,我们的选择如下:

    1、管理工具 - Docker Engine
    因为 Docker 最流行使用最广泛。

    2、runtime - runc

    Docker 的默认 runtime

    3、操作系统 - Ubuntu
    虽然存在诸如 CoreOS 的容器 OS,因考虑到我们目前处于初学阶段,选择大家熟悉的操作系统更为合适。等具备了扎实的容器基础知识后再使用容器 OS 会更有利。

    安装 Docker

    Docker 支持几乎所有的 Linux 发行版,也支持 Mac 和 Windows。各操作系统的安装方法可以访问:https://docs.docker.com/engine/installation/

    本节将在ubuntu18.04虚拟机中安装Docker,因为安装过程需要访问 internet, 所以虚拟机必须能够上网。

    Docker 分为开源免费的 CE(Community Edition)版本和收费的 EE(Enterprise Edition)版本。下面我们将按照文档,通过以下步骤在 Ubuntu 18.04 上安装 Docker CE 版本。

    配置 Docker 的 apt 源

    ubuntu18.04配置网络

    vim /etc/netplan/50-cloud-init.yaml

    修改dns

    vim /etc/systemd/resolved.conf

    1、安装包,允许 apt 命令 HTTPS 访问 Docker 源。

    apt-get update

    apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

    2、添加 Docker 官方的 GPG

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

    apt-key fingerprint 0EBFCD88

    3. 将 Docker 的源添加到 /etc/apt/sources.list

    add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

    安装 Docker

    更新软件列表

    apt-get update

    更新软件

    atp-get upgrade

    生产环境安装docker要指定版本安装,不要安装最新版本。首先运行下行的命令,找到和ubuntu当前版本对应的docker版本。

    apt-get install docker-ce docker-ce-cli containerd.io

    root@zbw-docker01:~# docker -v
    Docker version 18.09.6, build 481bc77

    centos7安装docker

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

    yum-config-manager  --add-repo https://download.docker.com/linux/centos/docker-ce.repo

    yum install docker-ce docker-ce-cli containerd.io

    systemctl start docker

    运行第一个容器

     docker run -d -p 80:80 httpd

    其过程可以简单的描述为:

    a、Docker 客户端执行 docker run 命令。

    b、Docker daemon 发现本地没有 httpd 镜像,从 Docker Hub 下载 httpd 镜像。镜像中已经安装好了 Apache HTTP Server。

    c、下载完成,镜像 httpd 被保存到本地。

    d、Docker daemon 启动容器,并将容器的 80 端口映射到 host 的 80 端口。

    用浏览器验证是否正常工作

    镜像下载加速

    由于 Docker Hub 的服务器在国外,下载镜像会比较慢。修改为国内镜像服务器。

    a、在 daocloud.io 免费注册一个用户。

    b、登陆后,点击更多,加速器

     

    c、curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://82542146.m.daocloud.io

     

    d、重启 Docker deamon,即可体验飞一般的感觉。

    systemctl restart docker.service

     附自动安装脚本:

    vim docker-install.sh

    #!/bin/bash
    
    #change apt source
    cat > /etc/apt/sources.list << EOF
    deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse EOF apt-get update apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" apt-get update apt-get install docker-ce docker-ce-cli containerd.io -y #add daocloud.io images source curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://82542146.m.daocloud.io systemctl restart docker.service docker run -d -p 80:80 httpd docker ps docker -v
  • 相关阅读:
    2015-04-10一些知识点
    2015-04-07一些知识点
    斐波那契数列算法
    进制转换算法
    Java中transient有何作用?
    RandomAccessFile的使用
    Java各种类型占用的字节数
    LineNumberReader类的使用
    PreparedStatement和Statement的区别
    ResultSet几种类型的区别
  • 原文地址:https://www.cnblogs.com/mkxfs/p/10137651.html
Copyright © 2011-2022 走看看