docker初识 一

安装docker:(Ubuntu17.04)(主要介绍如何从基础系统部署docker)

 

1、使用root用户身份添加apt源
添加public key使docker的安装源授信
curl -s 'https://sks-keyservers.net/pks/lookup?op=get&search=0xee6d536cf7dc86e2d7d56f59a178ac6c6238f52e' | sudo apt-key add --import

 

2.安装apt的https支持
sudo apt-get update && sudo apt-get install apt-transport-https

 

3.安装docker
apt-get update && apt-get install docker-engine

 

4.查看是否安装成功
docker info

 

首先需要知道启动docker服务是:

service docker start
或者:
systemctl start docker


关闭docker服务:
service docker stop
或者:
systemctl stop docker

{            最便利安装docker方法

要在 CentOS 上安装 Docker,您可以按照以下步骤进行操作:

  1. 更新系统:
    在安装 Docker 之前,先确保您的系统是最新的。使用以下命令更新 CentOS 系统:

    $ sudo yum update
    
  2. 移除旧版本(如果有):
    如果您之前已经安装了旧版本的 Docker,可以使用以下命令将其删除:

    $ sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
    
  3. 安装 Docker:
    安装 Docker 的最简单的方法是使用 Docker 官方提供的安装脚本。运行以下命令来下载并运行安装脚本:

    $ sudo curl -fsSL https://get.docker.com | sh
    
  4. 启动 Docker 服务:
    安装完成后,可以使用以下命令启动 Docker 服务:

    $ sudo systemctl start docker
    

    这将启动 Docker 并在系统重新启动时自动启动 Docker 服务。

  5. 验证安装:
    运行以下命令来检查 Docker 是否正确安装并正在运行:

    $ sudo docker version
    

    如果 Docker 安装正确,将显示 Docker 客户端和服务器版本信息

}

docker特色:

1.Docker提供了一种可移植的配置标准化机制,允许你一致性地在不同的机器上运行同一个Container;

2.Docker提供了一种类似git的Container版本化的机制,允许你对你创建过的容器进行版本管理,
依靠这种机制,你还可以下载别人创建的Container,甚至像git那样进行合并;

3.Docker以App为中心,为应用的部署做了很多优化,而LXC的帮助脚本主要是聚焦于如何机器启动地更快和耗更少的内存;

4.Docker为App提供了一种自动化构建机制(Dockerfile),包括打包,基础设施依赖管理和安装等等;

5.Docker Container是可重用的,依赖于版本化机制,你很容易重用别人的Container(叫Image),
作为基础版本进行扩展;

6.Docker Container是可共享的,有点类似github一样,Docker有自己的INDEX,
你可以创建自己的Docker用户并上传和下载Docker Image;


docker应用场景:

1.web应用的自动化打包和发布

2.自动化测试和持续集成、发布

3.在服务型环境中部署和调整数据库或其他的后台应用

可以看出来docker其实就是使得部署,发布变得更加快捷,更加自动化,且适应云平台环境.

 

docker使用:
1.docker仓库查找 看看是否有需要的应用
sudo docker search oracle 找Oracle

2.找到后可以直接拉下使用
sudo docker pull wnameless/oracle-xe-11g
3.等待下载,时间比较长,接近1G的大小,完成之后来看看
sudo docker images
4.接下来按照该Image的文档操作,直接启动一个Container(我这里添加了-name参数)
sudo docker run -name oraclexe -d -p 49160:22 -p 49161:1521 wnameless/oracle-xe-11g

 

Ubuntu docker 可选配置:
使用这些配置能够让 Docker 在 Ubuntu 上更好的工作

1.创建 Docker 用户组
docker 进程通过监听一个 Unix Socket 来替代 TCP 端口。在默认情况下,docker 的 Unix Socket属于root用户,
当然其他用户可以使用sudo方式来访问。因为这个原因, docker 进程就一直是root用户运行的。

为了在使用 docker 命令的时候前边不再加sudo,我们需要创建一个叫 docker 的用户组,并且为用户组添加用户。
然后在 docker 进程启动的时候,我们的 docker 群组有了 Unix Socket 的所有权,可以对 Socket 文件进行读写。

创建 docker 用户组并添加用户。
sudo usermod -aG docker 用户名 #我的虚拟机用户名为may

注销登录并重新登录 再次运行docker可以不在root权限下运行

2.调整内存和交换空间(swap accounting)

当我们使用 Docker 运行一个镜像的时候,我们可能会看到如下的信息提示:
WARNING: Your kernel does not support cgroup swap limit. WARNING: Your
kernel does not support swap limit capabilities. Limitation discarded.

为了防止以上错误信息提示的出现,我们需要在系统中启用内存和交换空间。
我们需要修改系统的 GUN GRUB (GNU GRand Unified Bootloader) 来启用内存和交换空间。开启方法如下:

使用具有sudo权限的用户来登录你的Ubuntu。

  编辑 /etc/default/grub 文件

  设置 GRUB_CMDLINE_LINUX 的值如下:

GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"

保存和关闭文件

  更新 GRUB

sudo update-grub


3.启用防火墙的端口转发(UFW)
当你在运行 docker 的宿主主机上使用UFW(简单的防火墙)。你需要做一些额外的配置。Docker 使用桥接的方式来管理网络。默认情况下,UFW 过滤所有的端口转发策略。因此,当在UFW启用的情况下使用 docker ,你必须适当的设置UFW的端口转发策略。

  默认情况下UFW是过滤掉所有的入站规则。如果其他的主机能够访问你的容器。你需要允许Docker的默认端口(2375)的所有连接。

  设置 UFW 允许Docker 端口的入站规则:

  使用具有sudo权限的用户来登录你的Ubuntu。
  验证UFW的安装和启用状态
sudo ufw status

打开和编辑/etc/default/ufw文件
sudo gedit /etc/default/ufw

设置 DEFAULT_FORWARD_POLICY 如下:
DEFAULT_FORWARD_POLICY="ACCEPT"

保存关闭文件。

  重新加载UFW来使新规则生效。
sudo ufw reload

允许 Docker 端口的入站规则
sudo ufw allow 2375/tcp

4.为 Docker 配置DNS服务

无论是Ubuntu还是Ubuntu 桌面繁衍版在系统运行的时候都是使用/etc/resolv.conf配置文件中的127.0.0.1作为域名服务器(nameserver)。
NetworkManager设置dnsmasq使用真实的dns服务器连接,并且设置 /etc/resolv.conf的域名服务为127.0.0.1。

在桌面环境下使用这些配置来运行 docker 容器的时候, Docker 用户会看到如下的警告:
WARNING: Local (127.0.0.1) DNS resolver found in resolv.conf and containers
can't use it. Using default external servers : [8.8.8.8 8.8.4.4]

该警告是因为 Docker 容器不能使用本地的DNS服务。相反 Docker 使用一个默认的外部域名服务器。

为 Docker 指定一个DNS服务器

  使用具有sudo权限的用户来登录你的Ubuntu。

  打开并编辑 /etc/default/docker

sudo nano /etc/default/docker
  添加设置

DOCKER_OPTS="--dns 8.8.8.8"
  使用8.8.8.8替换如192.168.1.1的本地DNS服务器。你可以指定多个DNS服务器,多个DNS服务器使用空格分割例如

--dns 8.8.8.8 --dns 192.168.1.1
  警告:如果你正在使用的电脑需要连接到不同的网络,一定要选择一个公共DNS服务器。
  保存关闭文件。

  重启 Docker 进程

sudo restart docker

 

 

 

posted on 2017-09-29 14:47  yanmay  阅读(181)  评论(0编辑  收藏  举报

导航