Docker基础之二: Linux快速入门

Linux快速使用教程

(提示:对Docker感兴趣的朋友可以加我的微信ghostcloud2016,然后我把你加到我们的一个Docker爱好者群组里面。)

由于Docker是的容器都依赖于linux 内核,因此这一节主要是快速简单的介绍一下linux,如果你对linux比较熟悉,可略过。

1 为什么要使用linux

  • 本身开源免费
  • 支持众多开源的软件,诸如mysql, apache, mongodb, nodeJS等
  • 基本上90%以上的互联网公司都使用linux作为后端服务器
  • 云主机大多数都是基于linux系统

2 选取什么发行版本

Linux包含了很多的发行版本,包括ubuntu, centos, redhat, federa等等,但是他们都是基于linux kernel,各个发行版本都会做相应的包装、优化和简化,但是基本上内核版本不会有太大的差异。根据我的经验,我推荐使用ubuntu 或者centos。Ubuntu的优点是:

  • 内核更新及时
  • 软件安装和更新方便
  • GUI简单实用 CentOS就是Red Hat Enterprise 的开源版本,也是不错的选择,考虑到Ubuntu对Docker的完美支持,我一般推荐使用Ubuntu.

3 图形界面 Or 命令行界面

在安装的时候,ubuntu14.04提供了桌面版和服务器版,如果你要使用eclipse等工具进行开发,肯定要选择桌面版;如果你只是运行后台程序,最好选择服务器版,多使用服务器版把linux的命令用熟悉也是一种学习和锻炼。

4 英文 Or 中文

一般来说使用linux的用户都是相对专业的用户,我建议一律使用英文的操作系统。使用英文操作系统,可以熟悉英文,同时不会出现奇怪的乱码字符。

5 安装ubuntu 14.04

安装的时候就根据提示一步步的进行就可以了,在中途选择软件的时候,至少把SSH server选上,方便后续连接入系统。安装完毕后,我们通过之前设置的用户名和密码登录,接下来我们做一些常用配置。

5.1 启用root用户

root用户是linux的最高权限用户,相当于windows的超级管理员。我们可以通过下面的方式来启用root用户:

root@gctest:~# sudo passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

根据提示输入当前用户的密码,然后再输入root的密码。sudo是以管理员身份运行命令。然后通过su 命令切换到root用户.

5.2 使用vim

vim是ubuntu默认的文本编辑器,学习使用linux第一步就是学会使用vi。有的时候vim可能是没有安装的,我们需要手动来进行安装:

root@gctest:~# sudo apt-get update && apt-get install vim
Hit http://mirrors.163.com precise Release.gpg
Hit http://mirrors.163.com precise Release
Hit http://apt.ghostcloud.cn ubuntu-precise Release.gpg

安装成功之后,我们就可以使用vim了。vim 是vi的升级版,有了很多优化。常用的命令有:

i – 从当前位置开始插入数据
a – 在当前位置后面插入数据
esc – 退出编辑模式
: - 在vim中执行一条指令,比如wq就是保存加退出
/ - 搜索文字
上下左右键 – 移动光标,vi 里面不能用方向键,但是vim里面是可以使用的

虽然还有很多命令,但是用上面的基本就能操作了。

5.3 配置网络

ubuntu的网络配置是放在/etc/network/interfaces下的,我们通过vim来进行查看和修改

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.0.0
gateway 192.168.0.1
dns-nameservers 61.139.2.69 218.6.200.139

修改完毕后,我们需要重启网络,一个比较好的方式是禁用再启用网络:

root@gctest:~# ifdown -a && ifup -a

5.4 启用SSH Server

SSH是Secure Shell的缩写,是linux的标准远程连接工具,通过这个工具我们可以以命令行的方式远程连接到 linux主机之上。首先我们需要检查在主机上是否安装了ssh server

root@shev:~# dpkg -l | grep openssh-server
ii  openssh-server                      1:6.6p1-2ubuntu2                 amd64        secure shell (SSH) server, for secure access from remote machines

如果没有安装就不会有下面的输出。接下来,我们需要配置ssh

# vim /etc/ssh/sshd_config

#允许Root登录
PermitRootLogin yes

#允许通过密码进行验证登录
PasswordAuthentication yes
`

保存退出后,执行

root@gctest:~# restart ssh

然后验证能否本地登录

root@shev:~# ssh root@localhost
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is 3a:8c:00:76:4d:4d:62:a7:c7:18:a0:00:e6:d0:17:c7.
Are you sure you want to continue connecting (yes/no)?

根据提示输入用户密码,如果可以登录说明安装成功,最后执行exit,退出ssh连接。

5.5 通过客户端连接linux主机

目前市面上有很多ssh客户端,包括免费的XShell, Secure CRT等,如果你使用linux或mac系统,本身就自带 ssh 客户端。Ssh 命令登录,需要指定用户和ip地址,格式如下:

ssh <用户名>@<IP>
#如:ssh root@192.168.1.10 表示,以root用户登录192.168.1.10机器。

5.6 免密码登录linux主机

免密码登录的原理是在你需要登录的远程主机上,存放当前机器的公钥。

  1. 在当前机器生成公钥和私钥 ssh-keygen
  2. 根据提示生成以后,会在~/.ssh/目录下生成相关的文件。这里的~指的是用户的目录,比如,在linux下abc用户的目录为/home/abc,root用户的目录为/root,在mac下是在/Users/<用户名>
  3. 将公钥id_rsa.pub拷贝到目标机器上 scp ~/.ssh/id_rsa.pub root@192.168.1.10:~/ 这行命令将当前用户的公钥拷贝到远程机器的root用户目录下
  4. ssh root@192.168.1.10
  5. ssh-keygen #在远端产生密钥
  6. cat id_rsa.pub >> ~/.ssh/authorized_keys #加入信任列表
  7. rm id_rsa.pub #删除公钥
  8. exit #退出远程机器 这时已经返回到当前机器,再执行ssh root@192.168.1.10就不再需要输入密码了。

5.7 安装软件

Ubuntu软件安装用的是和debian一样的系统——apt。apt就是一个软件仓库,你只需要指定仓库地址,然后就可以进行搜索和安装.

  1. 添加源:默认的ubuntu源是指向国外的,位于/etc/apt/sources.list,我们可以在网上搜索国内的源,比如:网易源,阿里源等
    deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
    
  2. 搜索软件
    root@shev:/etc/apt# apt-cache search apache2 | grep ^apache2
    apache2 - Apache HTTP Server
    apache2-bin - Apache HTTP Server (binary files and modules)
    apache2-data - Apache HTTP Server (common files)
    apache2-dbg - Apache debugging symbols
    apache2-dev - Apache HTTP Server (development headers)
    apache2-doc - Apache HTTP Server (on-site documentation)
    apache2-mpm-event - transitional event MPM package for apache2
    apache2-mpm-prefork - transitional prefork MPM package for apache2
    apache2-mpm-worker - transitional worker MPM package for apache2
    apache2-utils - Apache HTTP Server (utility programs for web servers)
    apache2.2-bin - Transitional package for apache2-bin
    apache2-mpm-itk - transitional itk MPM package for apache2
    apache2-suexec - transitional package for apache2-suexec-pristine
    apache2-suexec-custom - Apache HTTP Server configurable suexec program for mod_suexec
    apache2-suexec-pristine - Apache HTTP Server standard suexec program for mod_suexec
    
  3. 安装软件
    root@shev:/etc/apt# apt-get install apache2
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    The following extra packages will be installed:
    apache2-bin apache2-data libapr1 libaprutil1 libaprutil1-dbd-sqlite3
    libaprutil1-ldap ssl-cert
    Suggested packages:
    apache2-doc apache2-suexec-pristine apache2-suexec-custom apache2-utils
    openssl-blacklist
    The following NEW packages will be installed:
    apache2 apache2-bin apache2-data libapr1 libaprutil1 libaprutil1-dbd-sqlite3
    libaprutil1-ldap ssl-cert
    0 upgraded, 8 newly installed, 0 to remove and 72 not upgraded.
    Need to get 1285 kB of archives.
    After this operation, 5348 kB of additional disk space will be used.
    Do you want to continue? [Y/n] y
    
  4. 卸载软件
    root@shev:/etc/apt# apt-get purge apache2
    
  5. 查找本地安装的软件
    root@shev:/etc/apt# dpkg -l
时间: 2024-10-07 10:49:09

Docker基础之二: Linux快速入门的相关文章

Docker基础技术:Linux Namespace(上)

时下最热的技术莫过于Docker了,很多人都觉得Docker是个新技术,其实不然,Docker除了其编程语言用go比较新外,其实它还真不是个新东西,也就是个新瓶装旧酒的东西,所谓的The New "Old Stuff".Docker和Docker衍生的东西用到了很多很酷的技术,我会用几篇 文章来把这些技术给大家做个介绍,希望通过这些文章大家可以自己打造一个山寨版的docker. 当然,文章的风格一定会尊重时下的"流行"--我们再也没有整块整块的时间去看书去专研,而我

Docker基础技术:Linux Namespace【上】

点点收获: //之前发现Coolshell上好久不更新了, 博主果然去搞大业去了,只恨这几篇文章看到太晚了啊~太厉害了. 1.  clone(), unshare(), setns()初识; 主要是š三个系统调用 šclone() - 实现线程的系统调用,用来创建一个新的进程,并可以通过设计上述参数达到隔离. šunshare() - 使某进程脱离某个namespace šsetns() - 把某进程加入到某个namespace 2.  学习了一个命令 -- ipcs -- report XSI

Docker 基础技术:Linux Namespace(下)

在 Docker基础技术:Linux Namespace(上篇)中我们了解了,UTD.IPC.PID.Mount 四个namespace,我们模仿Docker做了一个相当相当山寨的镜像.在这一篇中,主要想向大家介绍Linux的User和Network的Namespace. 好,下面我们就介绍一下还剩下的这两个Namespace. User Namespace User Namespace主要是用了CLONE_NEWUSER的参数.使用了这个参数后,内部看到的UID和GID已经与外部不同了,默认显

Linux学习基础教程_unix linux

 Linux学习基础 1.什么是Linux?  准确的说,是指Linux的kernel(系统的核心程序),其内核版权属于Linus Torvalds,在GPL(GNU General Public License)版权协议下发行, 任何人都可以自由的复制(copy), 修改(change), 套装分发(distribute),销售,但是不可以在分发时加入任何限制, 而且所有原码必须是公开的,所以任何人都可以无偿取得所有执行文件和原代码.  对于Linux用户和系统管理员来说,Linux是指包含L

Dubbo实战一:快速入门 [译]

一.简介 Dubbo不单单只是高性能的RPC调用框架,更是SOA服务治理的一种方案. 核心: 1. 远程通信,向本地调用一样调用远程方法. 2. 集群容错 3. 服务自动发现和注册,可平滑添加或者删除服务提供者. 二.快速入门 环境:Maven,git,jdk 1. 克隆dubbo开源项目 cd ~ git clone https://github.com/alibaba/dubbo.git 2. Maven编译项目 cd ~/dubbo mvn clean install -Dmaven.te

Entity Framework快速入门--CodeOnly POCO

前几篇文章我简单介绍了Entity Framework的概念以及介绍了Database First方式实例和Model First方式实例.今天我们将介绍另外一种令人兴奋的开发方式:CodeOnly!当然EF对于POCO(Plain Old CLR Object)的支持是EF4.0中的一大特性.也是EF可扩展性提高的一大进步.废话少说,也是简单给大家演示一下操作的步骤!先简单说一下流程,然后再看下面的截图! 流程:在EDMX设计器里设计 实体模型→根据实体编写相应的实体类代码→编写数据库访问接口

docker基础入门之二

一.docker文件系统: linuxFS包括boot file system 和 root file system boot file system (bootfs),包含bootloader和kernel,在系统启动完成后,kernel滞留内存,bootfs解除挂载: root file system(rootfs),包括类似/bin,/usr, /lib等目录,这些和kernel无关,这也是不同linux发行版本的差异所在:       Linux  FS Linux FS in Dock

Docker快速入门以及环境配置详解_docker

前言 数据科学开发环境配置起来让人头疼,会碰到包版本不一致.错误信息不熟悉和编译时间漫长等问题.这很容易让人垂头丧气,也使得迈入数据科学的这第一步十分艰难.而且这也是一个完全不常见的准入门槛. 还好,过去几年中出现了能够通过搭建孤立的环境来解决这个问题的技术.本文中我们就要介绍的这种技术名叫Docker.Docker能让开发者简单.快速地搭建数据科学开发环境,并支持使用例如Jupyter notebooks等工具进行数据探索. 简介 Docker 最初 dotCloud 公司内部的一个业余项目

走近VB.Net(十二) 注册表快速入门

快速入门|注册表 走近VB.Net(十二) 注册表快速入门 作者:hejianzhong VB.Net中文站(http://vbnetcn.126.com) 首先介绍一下注册表的相关基础知识:注册表的每一个文件夹被称为一个Key(项),这个文件夹的子文件夹被称为SubKey(子项),而在一个子项中有不同的Value Name(值项-即数值顶),值项后面就是你要保存的数据Value Data(数据)了.而在子项中通常都有一个Default Value 是默认的Value Name,相信打开过注册表