A. 如何在Docker容器中运行Apache服务器
所需软件
您需要在电脑中安装 Oracle Virtual Box 和 Vagrant 。如果已经装好,那我们就开始吧!
步骤1:创建 CentOS 虚拟机
在本地目录(本文中使用 ~/vagrant 目录)中创建一个 Vagrantfile 文件,内容如下:
# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "centos65"
config.vm.box_url = "https://github.com/2creatives/vagrant-centos/releases/download/v6.5.1/centos65-x86_64-20131205.box"
config.vm.network :forwarded_port, guest: 80, host: 8080
config.vm.network :public_network
config.ssh.forward_agent = true
end
在这里,我就不解释 Vagrant 和 Vagrantfile 了。 Vagrantfile 创建好后,在
Vagrantfile 所在目录中再创建一个 htdocs 目录并在其中创建一个 index.html 文件, html
文件内容如下:
This file is being server by http server running inside docker
container
Vagrantfile 文件和 htdocs 目录都创建好了,现在我们来执行下面的命令:
vagrant up # 启动虚拟机,这一步可能会让我们选择网卡
vagrant ssh # 虚拟机启动后,通过ssh登陆到虚拟机中
步骤2:安装 docker
执行下面的命令来安装 docker :
sudo yum -y update # Update Installed packages
sudo yum install docker-io # Install Docker
sudo service docker start # Start Docker
步骤3:设置 Docker
Docker 需要一个基本的镜像才能运行,我们的所有容器都是(直接或间接)基于这样一个镜像来运行的,下面的命令把一个基本镜像
pull 到本地:
sudo docker pull centos # Download base image
步骤4:为我们的容器创建第一个镜像
# 以 centos 镜像作为基础镜像,我们启动自己的容器并在其中执行/bin/bash命令
# 注:-t -i 参数用于创建一个虚拟的命令行。
sudo docker run -t -i centos /bin/bash
现在我们已经成功的运行了自己的第一个容器,并且进入到容器的命令行界面中。在容器中,我们执行下面的命令:
yum -y update # 更新软件包
yum install which # 安装which命令
yum install git # 安装Git
安装完成后,按 Ctrl + d 来退出容器的命令行。
# 执行sudo docker ps -a,可以看到被我们终止的容器
CONTAINER ID IMAGE
COMMAND
CREATED……
da9031d3568f centos:6.4
/bin/bash 5
minutes ago…..
把我们所做的改变提交到一个新的容器:
# 这里我们创建一个自己的基础容器,容器中安装好了文章中所需的常用工具。读者的容器 id 可能与文章中的有所不同,以上一步
docker ps -a 的结果为准。
sudo docker commit da90 custom/base
容器成功提交后,执行 sudo docker images
,我们会看到刚才提交的容器(如下面的结果所示)。我们就以这个容器为基础容器,再来创建一个新的容器。
REPOSITORY TAG
IMAGE ID
CREATED
custom/base latest
05b6cecd370b
2 minutes ago
centos 6.4
539c0211cd76 10 months ago
centos latest
539c0211cd76
10 months ago…
步骤5:创建新的容器,并安装 apache
# 以 custom/base 容器为基础,运行一个新的容器。
sudo docker run -t -i custom/base /bin/bash
# 安装 httpd
yum install httpd
步骤6:再次提交新的容器
按 Ctrl + d 来退出容器的命令行,然后执行命令:
# 这个命令会把步骤5中我们安装 httpd 带来的改变提交到新的名为 custom/httpd 的容器镜像中。你的容器 id
可能会和文章中有所不同,以 sudo docker ps -a 命令的结果为准。
sudo docker commit aa6e2fc0b94c custom/httpd
你应该已经发现了,我们创建了一个带有 http
服务器并可以复用的容器镜像。你可以根据这种思想,为自己所需的每个组件都创建一个容器,然后把这些容器复用于开发环境或者生产环境。
步骤7:运行 http 服务器
# -v will Mount a volume from VM to the container which was also
shared from host to Vagrant VM.
# -v 参数把主机共享给虚拟机的一个卷挂载到容器中
# -p forward VM port 80 to container port 80; VM port 80 is
mapped to host port 8080 in Vagrantfile
# -p 参数把虚拟机的80端口映射到容器的80端口;虚拟机的80端口在 Vagrantfile
中被绑定到主机的8080端口,也就是:主机8080->虚拟机80->容器80
sudo docker run -t -i -p 80:80 -v /vagrant/htdocs:/var/www/html
custom/httpd /bin/bash
# 启动 Apache
apachectl -k start
步骤8:在浏览器中测试
在浏览器中浏览 http://localhost:8080 ,你应该可以看到步骤1中 html 文件的内容。
总结
我想,你现在一定已经感受到 Docker 的强大了。用 Docker
可以创建轻量级、可复用的镜像,这样的镜像非常适合连续安装软件的情况。后面的文章中,我会教大家如何通过 Dockerfile
来完成本文中的工作,敬请期待。
译者注:连续安装软件的情况,作者意思是指通过 Docker 镜像中“层”( layer
)的概念,在连续的层中,每一层都安装所需的一种或几种软件。
B. centos怎么通过命令拿
linux centos 命令怎么使用 在X-Window图形操作界面中按“Alt+Ctrl+功能键Fnn=1~6”就可以进入Console字符操作界面。这就意味着你可以同时拥有X-Window加上6个Console字符操作界面,这是一件多么令人振奋的事情啊! 在Console字符...
C. 如何在CentOS系统利用命令行操作文件以及文件夹
下面总结一些linux,CentOS下面常用的命令:
cd pwd
NO1. 显示当前路径
[root@rehat root]# pwd
NO2. 返回用户主目录
[root@rehat root]# cd
NO3. 改变到其它路径
[root@rehat root]# cd /etc
NO4. 返回到上一级目录
[root@rehat root]# cd ..
NO5. 返回到根目录
[root@rehat root]# cd /
查询文件或文件夹的CentOS常用命令 find
NO1. 查找当前用户主目录下的所有文件
[root@rehat root]# find ~
NO2. 让当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件;
[root@rehat root]# find . -perm 644 -exec ls -l {} \;
NO3. 为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径;
[root@rehat root]# find / size 0 -type f -exec ls -l {} \;
NO4. 查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们;
[root@rehat root]# find /var/logs -mtime +7 -type f -ok rm -i {} \;
NO5. 为/找系统中所有属于root组的文件;
[root@rehat root]# find / -group root -exec ls -l {} \;
NO6. find命令将删除当目录中访问时间在7日以来、含有数字后缀的admin.log文件
[root@rehat root]# find . -name "admin.log[0-9][0-9][0-9]" -atime -7 -ok rm { } \;
NO7. 为了查找当前文件系统中的所有目录并排序
[root@rehat root]# find . -type d | sort
NO8. 为了查找系统中所有的rmt磁带设备
[root@rehat root]# find /dev/rmt
显示文件/文件夹清单的CentOS常用命令 ls / dir
NO1. 显示所有文件,包括以.开头的隐含文件
[root@rehat root]# ls -a
NO2. 显示文件的详细信息
[root@rehat root]# ls -l
NO3. 显示当前目录及所有子目录信息
[root@rehat root]# ls -Rl
NO4. 以时间排序显示目录,这在找最新文件有用
[root@rehat root]# ls -tl
NO5. 以文件大小排序
[root@rehat root]# ls -Sl
NO6. 显示文件大小,并按大小排序
[root@rehat root]# ls -s -l -S
移动或更改文件/文件夹名称的CentOS常用命令 mv 与 cp命令用法相似
NO1. 若移动目标文件已存在,要在移动之前,先备份原来的目录文件
[root@rehat root]# mv -b test.txt test2/
这样在 test2 下将有两个文件 test.txt 及 text.txt~
其中 test.txt~ 是备份文件,test.txt是新的文件
NO2. 若移动目标文件已存在,但不想弹出是否覆盖的提示,直接覆盖
[root@rehat root]# mv -f test.txt test2/
NO3. 当源与目标都拥有同一个文件,若源文件比目标新则移动,否则不移动
[root@rehat root]# mv -u test.txt test2/
NO4. 更改文件名称
[root@rehat root]# mv test.txt test2.txt
NO5. 更改目录名称
[root@rehat root]# mv /test2 /test2_2[/size]
创建/改变文件系统的CentOS常用命令
NO1. 创建文件系统类型
[root@rehat root]# umount /dev/sdb1
[root@rehat root]# mkfs -t ext3 /dev/db1
[root@rehat root]# mount /dev/sdb1 /practice
改变文件或文件夹权限的CentOS常用命令chmod
NO1. 将自己的笔记设为只有自己才能看
[root@rehat root]# chmod go-rwx test.txt
或者
[root@rehat root]# chmod 700 test.txt
NO2. 同时修改多个文件的权限
[root@rehat root]# chmod 700 test1.txt test2.txt
NO3. 修改一个目录的权限,包括其子目录及文件
[root@rehat root]# chmod 700 -R test
改变文件或文件夹拥有者的CentOS常用命令
chown 该命令只有 root 才能使用
NO1. 更改某个文件的拥有者
[root@rehat root]# chown jim:usergroup test.txt
NO2. 更改某个目录的拥有者,并包含子目录
[root@rehat root]# chown jim:usergroup -R test
查看文本文件内容的CentOS常用命令cat
NO1. 查看文件内容,并在每行前面加上行号
[root@rehat root]# cat -n test.txt
NO2. 查看文件内容,在不是空行的前面加上行号
[root@rehat root]# cat -b test.txt
NO3. 合并两个文件的内容
[root@rehat root]# cat test1.txt test2.txt > test_new.txt
NO4. 全并两具文件的内容,并追回到一个文件
[root@rehat root]# cat test1.txt test2.txt >> test_total.txt
NO5. 清空某个文件的内容
[root@rehat root]# cat /dev/null > test.txt
NO6. 创建一个新的文件
[root@rehat root]# cat > new.txt 按 CTRL + C 结束录入
编辑文件文件的CentOS常用命令vi
NO1. 新建档案文件
[root@rehat root]# vi newfile.txt
NO2. 修改档案文件
[root@rehat root]# vi test.txt test.txt 已存在
NO3. vi 的两种工作模式:命令模式,编辑模式
NO4. 进入 vi 后为命令模式,按 Insrt 键进入编辑模式
按 ESC 进入命令模式,在命令模式不能编辑,只能输入命令
NO5. 命令模式常用命令
:w 保存当前文档
:q 直接退出 vi
:wq 先保存后退出 。
:q! 强制不保存退出
创建目录的CentOS常用命令mkdir
NO1. 在当前路径创建一级目录
[root@rehat root]# mkdir test
NO2. 在当前路径创建多级目录
[root@rehat root]# mkdir -p mytest/test1/test1_1
NO3. 在创建目录的同时给新建的目录赋权限
[root@rehat root]# mkdir -m 777 testmod
这样任何人对此目录都有任何权限
复制文件与文件夹的CentOS常用命令cp
NO1. 复制指定目录的文件到当前目录,并重命名
[root@rehat root]# cp ~/.bashrc bashrc_bak
NO2. 强制复制指定目录的文件到当前目录,而不管当前目录是否含有该文件
[root@rehat root]# cp -f ~/.bashrc bashrc
NO2. 复制指定目录到当前目录
[root@rehat root]# cp -r /root/test .
[root@rehat root]# cp -r /root/test/ .
两者效果一样,在复制目录时,会将源路径的最后一级目录全部复制过去,包括它本身。
NO3. 复制指定目录的文件到指定目录
[root@rehat root]# cp ~/.bashrc /bak/.bashrc
NO4. 在复制时将源文件的全部属性也复制过来。若不指定参数,则目标文件与源文件属性可能不一致。
[root@rehat root]# cp -a ~/.bashrc /bak/.bashrc
NO5. 若两个文件夹要保证同步,一个文件的改了,另一个文件也跟着改,但是要保证两个文件的文件都是最新的。
[root@rehat root]# cp -u /src/.bashrc /bak_src/bashrc
建立链接文件,包括硬链接与软链接的CentOS常用命令ln
NO1. 建立类似于 Windows 的快捷方式
[root@rehat root]# ln -s test.txt test.txt_slnk
NO2. 当想备份一个文件,但空间又不够,则可以为该文件建立一个硬连接。这样,就算原文件删除了,只要该 链接文件没被删除,则在存储空间里还是没有被删除。
[root@rehat root]# ln -l test.txt test.txt_hlnk
使用CentOS常用命令查看cpu
more /proc/cpuinfo | grep "model name"
grep "model name" /proc/cpuinfo
[root@localhost /]# grep "CPU" /proc/cpuinfo
model name : Intel(R) Pentium(R) Dual CPU E2180 @ 2.00GHz
model name : Intel(R) Pentium(R) Dual CPU E2180 @ 2.00GHz
如果觉得需要看的更加舒服
grep "model name" /proc/cpuinfo | cut -f2 -d:
使用CentOS常用命令查看内存
grep MemTotal /proc/meminfo grep MemTotal /proc/meminfo | cut -f2 -d: free -m |grep "Mem" | awk '{print $2}'
使用CentOS常用命令查看cpu是32位还是64位 查看CPU位数(32 or 64)
getconf LONG_BIT
使用CentOS常用命令查看当前linux的版本
more /etc/redhat-release
cat /etc/redhat-release
使用CentOS常用命令查看内核版本
uname -r
uname -a
使用CentOS常用命令查看当前时间
date上面已经介绍如何同步时间了
使用CentOS常用命令查看硬盘和分区
df -h
fdisk -l
也可以查看分区
-sh
可以看到全部占用的空间
/etc -sh
可以看到这个目录的大小
使用CentOS常用命令查看安装的软件包,查看系统安装的时候装的软件包
cat -n /root/install.log
more /root/install.log | wc -l
查看现在已经安装了那些软件包
rpm -qa
rpm -qa | wc -l
yum list installed | wc -l
不过很奇怪,我通过rpm,和yum这两种方式查询的安装软件包,数量并不一样。没有找到原因。
使用CentOS常用命令查看键盘布局
cat /etc/sysconfig/keyboard
cat /etc/sysconfig/keyboard | grep KEYTABLE | cut -f2 -d=
使用CentOS常用命令查看selinux情况
sestatus
sestatus | cut -f2 -d:
cat /etc/sysconfig/selinux
使用CentOS常用命令查看ip,mac地址
在ifcfg-eth0 文件里你可以看到mac,网关等信息。
ifconfig cat /etc/sysconfig/network-scripts/ifcfg-eth0 | grep IPADDR cat /etc/sysconfig/network-scripts/ifcfg-eth0 | grep IPADDR | cut -f2 -d= ifconfig eth0 |grep "inet addr:" |awk '{print $2}'|cut -c 6- ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'
查看网关
cat /etc/sysconfig/network
查看dns
cat /etc/resolv.conf
使用CentOS常用命令查看默认语言
echo $LANG $LANGUAGE
cat /etc/sysconfig/i18n
使用CentOS常用命令查看所属时区和是否使用UTC时间
cat /etc/sysconfig/clock
使用CentOS常用命令查看主机名
hostname
cat /etc/sysconfig/network
修改主机名就是修改这个文件,同时最好也把host文件也修改。
使用CentOS常用命令查看开机运行时间
uptime
09:44:45 up 67 days, 23:32, ...
看来刚才确实是网段的问题,我的机器还是67天前开机的。
系统资源使用情况
vmstat 1 -S m procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 233 199 778 0 0 4 25 1 1 3 0 96 0 0 0 0 0 233 199 778 0 0 0 0 1029 856 13 1 86 0 0
删除文件的CentOS常用命令rm
NO1. 删除当前目录的文件
[root@rehat root]# rm test.txt
NO2. 强制删除当前目录的文件,不弹出提示
[root@rehat root]# rm -f test.txt
NO3. 强制删除整个目录,包括目录与文件全部删除,需要管理员权限
[root@rehat root]# rm -r -f test
删除文件夹的CentOS常用命令rmdir
NO1. 删除一个空目录
[root@rehat root]# rmdir emptydir
NO2. 删除多级空目录
[root@rehat root]# rmdir -p emptydir/d1/d11
挂载文件系统与卸载文件系统的CentOS常用命令
mount / umount
NO1. 挂载光驱
[root@rehat root]# mount -t iso9660 /dev/cdrom /mnt/cdrom
NO2. 挂载光驱,支持中文
[root@rehat root]# mount -t iso9660 -o codepage=936,iocharset=cp936 /dev/cdrom /mnt/cdrom
NO3. 挂载 Windows 分区,FAT文件系统
[root@rehat root]# mount -t vfat /dev/hda3 /mnt/cdrom
NO4. 挂载 Windows 分区,NTFS文件系统
[root@rehat root]# mount -t ntfs -o iocharset=cp936 /dev/hda7 /mnt/had7
No5. 挂载 ISO 文件
[root@rehat root]# mount -o loop /abc.iso /mnt/cdrom
NO6. 挂载 软驱
[root@rehat root]# mount /dev/fd0 /mnt/floppy
NO7. 挂载闪盘
[root@rehat root]# mount /dev/sda1 /mnt/cdrom
NO8. 挂载 Windows 操作系统共享的文件夹
[root@rehat root]# mount -t smbfs -o username=guest,password=guest //machine/path /mnt/cdrom
NO9. 显示挂载的文件系统
[root@rehat root]# mount
[root@rehat root]# cat /etc/fstab 显示系统启动自动加载的文件系统
[root@rehat root]# cat /etc/mtab 显示当前加载的文件系统
D. 怎样查看centos有多少命令
解决方法:
有以下命令可以查看:
# lsb_release -a
LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: CentOS
Description: CentOS release 5.4 (Final)
Release: 5.4
Codename: Final
这个命令适用于所有的linux,包括Redhat、SuSE、Debian、Centos等发行版。
root@MyMail ~ # uname
Linux
root@MyMail ~ # uname -r
2.6.18-164.el5
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:35 EDT 2010 i686 i686 i386 GNU/Linux
以下二种方法适用于RedHat,CentOS
root@MyMail ~ # cat /etc/redhat-release
CentOS release 5.4 (Final)
登录到linux执行rpm -q redhat-release
#rpm -q redhat-release
或CentOS
root@MyMail ~ # rpm -q centos-release
centos-release-5-4.el5.centos.1
E. centos修改配置文件命令
centos可以使用vi命令修改。
F. centos6.6怎么用命令配置ip
1
在安装过程中,到了设置主机名的界面,在左下方即有网络配置。如图。
点击进入。
2
进入网络连接后,我们点击:System eth0,再点击:编辑。如图。
3
然后先打勾:自动连接,再点击设置IPV4,如图。
4
在方法处:将自动更改为手动,如图。
5
然后,点击添加地址,如图。
6
1、在地址栏处输入IP地址。
2、子网掩码默认是24,已经是对的了,不过你也可以输入:255.255.255.0,或根据你的子网来更改。
3、网关处输入你的网关,一般人的都是路由器的IP地址。
4、在DNS服务器后面,输入你的DNS,如果有多个DNS,请用逗号“,”分隔。
如图,最后就一路确定关闭就可以了。
END
安装好系统后的命令界面设置网络IP地址方法
1
很多时候,Centos系统都是使用命令来管理的,如果当时安装系统时没有设置IP地址的话,那就只能在命令行设置了。当然对于高手来说,easy!但对于小白来说,头都大了,呵呵!下面简单说下我的操作吧
首先登陆帐户,用命令查看一下IP配置:ifconfig,结果如图。
2
没有查到信息,那是正常的,因为你没设置嘛!那接下来正常是用VI命令编辑网络配置文件了,命令:vi /etc/sysconfig/network-scripts/ifcfg-eht0
在这里的ETH0,指的第一个网卡接口,如果你的电脑(服务器有多个,请区分)
3
进入VI编辑模式下,里面是空的,在左下角有提示是新(增)文件。如图。
你就可以按格式编写内容了!
编写完成后:
1、按“ESC”,返回VI命令。
2、输入:“:X”保存退出。
就可以了。
4
但是,很多时候,较难记住里面文件的内容,且在输入时容易输错,所以,在此,我给小白们一个建议方法:
我们先设置一个临时IP,即重启后丢失的那种,命令是: ifconfig eth0 192.168.1.103(请根据你的实际情况输入),如图。就完成了。
5
这时,我们先来查看网络IP配置情况,命令是:ifconfig,如图。临时IP设置成功了。
6
当然,我们也可以用最常用的ping来测试网络是否连通,如图。网络也是通的了。
7
网络连通后,你就懂了吧,呵呵,就可以用其他工具登陆来设置了,如putty、SecureCRT及WINSCP等等了,最起码可以实现复制粘贴了,而WINSCP更方便,直接如WINDOWS一样操作。如图是putty。
以下解说一下网络配置文件内容:
DEVICE=eth0
TYPE=Etherne
tUUID=58d64342-6bca-4156-8d4b-3bb092190644
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
HWADDR=00:15:5D:01:44:11
IPADDR=192.168.1.103
PREFIX=24
GATEWAY=192.168.1.251
DNS1=202.96.128.86
DNS2=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
解说如下:
1、网卡对应的设备别名,如ifcfg-eth0的文件中它为eth02、网络类型:以太网
UUID含义是通用唯一识别码 (Universally Unique Identifier),在此可以忽略
3、ONBOOT=自动加载
NM_CONTROLLED及BOOTPROTO在此可以忽略
4、HWADDR=00:15:5D:01:44:11 网卡MAC地址(这个是我的,你别抄哦)
5、IPADDR=192.168.1.103 网络ip地址
6、PREFIX=24 子网掩码24位
7、GATEWAY=192.168.1.251 网关地址8、DNS1=10.203.104.41 主DNS地址
9、DNS1=10.203.104.41 备用DNS地址
G. centos 删除文件夹的命令是什么来的
1、删除文件夹命令:
rm /home/test(不带参数的删除方法经常会提示无法删除,因为权限不够。)
2、带参数删除
(1)、 rm -r /home/test(参数-r是递归的删除参数表中的目录及其子目录。 目录将被清空并且删除。当删除目录包含的具有写保护的文件时用户通常是被提示的。)
(2)、rm -rf /home/test(-f是不提示用户,删除目录下的所有文件。需要注意检查路径)
(3)、 rm -ir /home/test(-i是交互模式。使用这个选项,rm命令在删除任何文件前提示用户确认。)
(7)centos65命令扩展阅读:
CentOS常用命令
CentOS常用命令在使用过程中,经常被使用。一些经常使用且重要的CentOS常用命令如下:
使用CentOS常用命令查看cpu
more /proc/cpuinfo | grep "model name"
grep "model name" /proc/cpuinfo
[root@localhost /]# grep "CPU" /proc/cpuinfo
model name : Intel(R) Pentium(R) Dual CPU E2180 @ 2.00GHz
model name : Intel(R) Pentium(R) Dual CPU E2180 @ 2.00GHz
H. docker centos65 7使用哪个比较好
$ yum install docker
安装过程中报错:
Transaction check error:
file /usr/lib/systemd/system/blk-availability.service from install of device-mapper-7:1.02.107-5.el7_2.2.x86_64 conflicts with file from package lvm2-7:2.02.105-14.el7.x86_64
file /usr/sbin/blkdeactivate from install of device-mapper-7:1.02.107-5.el7_2.2.x86_64 conflicts with file from package lvm2-7:2.02.105-14.el7.x86_64
file /usr/share/man/man8/blkdeactivate.8.gz from install of device-mapper-7:1.02.107-5.el7_2.2.x86_64 conflicts with file from package lvm2-7:2.02.105-14.el7.x86_64
解决办法:
$yum install libdevmapper* -y
再次运行:
$yum install docker
3.检查安装是否成功
$docker version
若输出了 Docker 的版本号,说明安装成功了,可通过以下命令启动 Docker 服务:
4. $service docker start
一旦 Docker 服务启动完毕,就可以开始使用 Docker 了。
I. centos 怎样写linux命令
Linux的常用基本命令。
首先启动Linux。启动完毕后需要进行用户的登录,选择登陆的用户不同自然权限也不一样,其中“系统管理员”拥有最高权限。
在启动Linux后屏幕出现如下界面显示:
……
Red Hat Linux release 9 (Shrike)
Kernel2.4.20.8 on an i686
login:
输入:root(管理员名)后,计算机显示输口令(password:),输入你的口令即可。当计算机出现一个“#”提示 符时,表明你登录成功!
屏幕显示Linux提示符:[root@localhost root]#_
这里需要说明的是“Red Hat Linux release 9 (Shrike)”表示当前使用的操作系统的名称及版本。“2.4.20.8”表示Linux操作系统的核
心版本编号。“i686”表示该台电脑使用的CPU的等级。
下面我们来介绍常用基本命令
一,注销,关机,重启
注销系统的logout命令
1,Logout 注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可:
[root@localhost root]#logout
Red Hat Linuxrelease 9(Shike)
Kernel2.4.20.8 on an i686
Login: ← 回到登陆的画面
2,关机或重新启动的shutdown命令
Shutdown命令可以关闭所有程序,依照用户的需要,重新启动或关机。
参数说明如下:
立即关机:-h 参数让系统立即关机。范例如下:
[root@localhost root]#shutdown –h now ← 要求系统立即关机
指定关机时间:time参数可指定关机的时间;或设置多久时间后运行shutdown命令,范例如下:
[root@localhost root]#shutdown now ← 立刻关机
[root@localhost root]#shutdown +5 ← 5分钟后关机
[root@localhost root]#shutdown 10:30 ← 在10:30时关机
关机后自动重启:-r 参数设置关机后重新启动。范例如下:
[root@localhost root]#shutdown -r now ← 立刻关闭系统并重启
[root@localhost root]#shutdown -r 23:59 ← 指定在23:59时重启动
3,重新启动计算机的reboot命令
顾名思义,reboot命令是用来重新启动系统的。常用的参数如下:
-f 参数:不依正常的程序运行关机,直接关闭系统并重新启动计算机。
-I 参数:在在重新启动之前关闭所有网络接口。
虽然reboot命令有个参数可以使用,但是一般只需要单独运行reboot命令就可以了
二,文件与目录的操作
1,列出文件列表的ls命令
ls(list)命令是非常有用的命令,用来显示当前目录中的文件和子目录列表。配合参数的使用,能以不同的方式显示目录内容。范例
如下:
显示当前目录的内容:
[tony@free tony]$ ls
Desktop mail myinstall.log test.txt ← 有两个目录及两个文件夹
当运行ls命令时,并不会显示名称以“.”开头的文件。因此可加上“-a”参数指定要列出这些文件。范例如下:
[tony@free tony]$ ls –a
以“-s”参数显示每个文件所有的空间,并以“-S”参数指定按所有占用空间的大小排序。范例如下:
[tony@free tony]$ ls –s –S
总计36
4 Desktop 4 mail 24 myinstall.log 4 test.txt
在ls命令后直接加上欲显示的目录路径,就会列出该目录的内容。范例如下:
[tony@free tony]$ ls –l/usr/games
2,切换目录的cd命令
cd(change directory)命令可让用户切当前所在的目录。范例如下:
[tony@free home]$ cd tony ← 切换到当前目录下的tony子目录
[tony@free tony]$ cd .. ← 切换到上一层目录
[tony@free home]$ cd / ← 切换到系统根目录
[tony@free /]$ cd ← 切换到用户主目录
[tony@free tony]$ cd /usr/bin ← 切换到/usr/bin目录
3,创建目录的mkdir命令
Mkdir(make directory)命令可用来创建子目录。下面的范例会在所在目录下创建tool子目录。
[tony@free tony]$ mkdir tool
4,删除目录的rmdir命令
rmdir(remove directory)命令可用来删除“空”的子目录。范例如下:
[tony@free tony]$ rmdir tool ← 删除tool目录
5,复制文件的cp命令
cp()命令可以将文件从一处复制到另一处。一般在使用cp命令将以个文件复制成另一个文件或复制到某个目录时,需要指定原始文件
名与目的文件名或目录。范例如下:
[tony@free tony]$ cp data1.txt data2.txt ← 将data1.txt复制成data2.txt
[tony@free tony]$ cp data3.txt /tmp/data ← 将data3复制到/tmp/data目录中
显示复制过程:加入-v参数可显示命令执行过程。范例如下:
[tony@free tony]$ cp zip.txt zip2.txt ← 一般状态下不会显示复制过程
[tony@free tony]$ cp –v zip.txt zip3.txt ← 以-v显示复制过程
zip.txt ->zip3.txt
递回复制:加入“-R”参数可同时复制目录下的所有文件及子目录。范例如下:
[tony@free tony]$ cp –v –R * backup ← 将所有文件(含子目录文件)复制到backup目录
6,删除文件或目录的rm命令
rm(remove)命令可以删除文件或目录。范例如下:
[tony@free tony]$ rm myfile ← 删除指定的文件
[tony@free tony]$ rm * ← 删除当前目录中的所有文件
rm命令的常用参数如下:
强迫删除:使用-f参数时,rm命令会直接删除文件,不再询问。范例如下:
[tony@free tony]$ rm –f *.txt ← 强迫删除文件
递回删除:-r 也是一个相当常用的参数,使用此参数可同时删除指定目录下的所有文件及子目录。范例如下:
[tony@free tony]$ rm –r data ← 删除data目录(含data目录下所有文件和子目录)
[tony@free tony]$ rm –r * ← 删除所有文件(含当前目录所有文件,所有子目录和子目录下的文件)
强制删除指定目录:当使用-r参数删除目录时,若该目录下有许多子目录及文件,则系统会不间断地询问,以确认您的确要删除
目录或文件。若已确定要删除所存目录及文件,则可以使用-rf参数,如此一来,系统将直接删除该目录中所有的文件及子目录,不再询问。范
例如下:
[tony@free tony]$ rm –rf tmp 强制删除tmp目录及该目录下所有文件及子目录
显示删除过程:使用-v 参数。范例如下:
[tony@free tony]$ rm –v
7,让显示画面暂停的more命令
为了避免画面显示瞬间就闪过去,用户可以使用more命令,让画面在显示满一页时暂停,此时可按空格键继续显示下一个画面,或按Q键停
止显示。
当使用ls命令查看文件列表时,若文件太多则可以配合more命令使用。范例如下:
[tony@free bin]$ ls –al more
单独使用more命令时,可用来显示文字文件的内容。范例如下:
[tony@free tony]$ more data.txt
8,连接文件的cat命令
cat(concatenate) 命令可以显示文件的内容(经常和more命令搭配使用),或是将数个文件合并成一个文件。范例如下:
逐页显示 preface.txt的内容:
[tony@free tony]$ cat preface.txt more
将preface.txt 附加到outline.txt文件之后:
[tony@free tony]$ cat preface.txt >> outline.txt
将new.txt和info.txt合并成readme.txt文件:
[tony@free tony]$ cat new.txt info.txt >readme.txt
9,移动或更换文件,目录名称的mv命令
mv (move)命令可以将文件及目录移动到另一个目录下面,或更换文件及目录的名称。范例如下:
[tony@free backup]$ mv a.txt .. ← 将a.txt文件移到上层目录
[tony@free backup]$ mv z1.txt z3.txt ← 将 z1.txt改名成z3.txt
[tony@free backup]$ cd.. ← 切换到上一层目录
[tony@free tony]$ mv backup.. ← backup 目录上移一层
10,显示当前所在目录的pwd命令
pwd(print working directory)命令可显示用户当前所在的目录。范例如下:
[tony@free tony]$ pwd
/home/tony ← 当前所在目录为“/home/tony”
11,查找文件的locate命令
locate 命令可用来搜索包含指定条件字符串的文件或目录。范例如下:
[tony@free tony]$ locate zh_CN 列出所有包含“zh_CN”字符串的文件和目录。
由于locate命令是从系统中保存文件及目录名称的数据库中搜索文件,虽然系统会定时更新数据库,但对于刚新增或删除的文件、目录,
仍然可能会因为数据库尚未更新而无法查得,此时可用root身份运行updatedb命令更新,为此数据库得内容正确。
12,搜索字符串得grep命令
grep 命令可以搜索特定字符串来并显示出来,一般用来过滤先前得结果,避免显示太多不必要得信息。范例如下:
[tony@free etc]$ grep text *.conf ← 搜索当前目录中扩展名为.conf且包含“text”字符串得文件。
grep:amd.conf: ← 拒绝不符权限得操作
grep:diskcheck.conf: ← 拒绝不符权限得操作
grep:grub.conf ← 拒绝不符权限得操作
若您是使用一般权限的用户运行,上例的输出结果会包含很多如“拒绝不符权限的操作之类的错误信息,可使用-s参数消除。
[tony@free etc]$ grep –s text *.conf
13,重导与管道
重导(redirect)可将某命令的结果输出导文件中,它有两中命令:“>”和“>>”。“>”可将结果输出到文件中,该文件原有的内容会被
删除:“>>”则将结果附加到文件中,原文件内容不会被清除。范例如下:
[tony@free tony]$ ls –a>dir.txt ← 将ls –a命令执行结果输出到dir.txt文件。
[tony@free tony]$ cat data1.txt >> data2.txt ← 将 data1.txt 内容附加到data2.txt文件之后。
通道(pipe)命令的符号是“”,可将某命令的结果输出给另一命令,一下范例将ls命令的输出结果传给grep命令过滤:
[tony@free etc]$ ls gerp conf ← 搜索并显示ls命令运行结果中包含有“conf”字符串
在举一个删除文件或目录的例子,可以利用yes命令重复输出“y”字符的特性,将结果传给rm命令,如此即可避免重复输入“y”:
[tony@free tony]$ yes rm –r mydir
三,使用光盘及软盘
在Linux的文字模式下要使用光盘或软盘,并不是只将光盘或软盘放入即可,用户需要运行加载的命令,才可读写数据。所谓加载就是将存
储介质(如光盘和软盘)指定成系统中的某个目录(如/mnt/cdrom或mnt/floppy)。通过直接存取此加载目录,即可读写存储介质中的数据。
以下就来看看文字模式下的加载及卸载命令。
1,加载的mount命令
要使用光盘时先把光盘放入光驱,然后执行加载的mount命令,将光盘加载至系统中:
[tony@free tony]# mount/dev/cdrom/mut/cdrom ← 加载光盘
同理,使用软盘之前也需要和光盘一样,必须先加载后才能使用:
[tony@free tony]# mount/dev/fd0/mut/floppy ← 加载软盘
2,卸载的umount命令
如果不需要使用光盘或软盘,则需先执行卸载命令之后,才能将光盘或软盘退出。范例如下:
[tony@free tony]# umount / mnt/cdrom ← 光盘卸载
在不使用软盘时执行umount 命令卸载软盘,再将软盘拿出
[tony@free tony]# umount / mnt/ ← 软盘卸载
四,在后台运行程序
用户有时的程序有可能要花费很多时间,如果将它放在前台运行,将导致无法继续做其他事情,最好的方法就是将它放在后台运行,甚至
可能希望在用户注销系统后,程序还可以继续运行。让我们看看那如何实现这一目的。
1,在后台运行程序的&、bg命令
将程序放到后台运行的最简单方法就是在命令最后加上“&”,范例如下:
[tony@free root]# updatedb & ← 在后台执行 locate 数据库更新命令
[tony@free root]# bg ← 将更新操作放到后台运行
2,前台运行的程序fg命令
如果用户当前已有程序在后台运行,可以输入fg命令,将它从背景中移到前台运行:
[tony@free root]# fg ← 放到前台执行的命令会显示出来
3,在退出后让程序继续运行的nohup命令
此命令可使用户退出系统后,程序继续运行。范例如下:
[tony@free rony]$ nohup myserver &
然后用户就可以退出了,当再次登录的时候,可以用ps –aux命令看到程序仍在后台中运行。
五,任务调度命令
计算机有很多程序需要周期性的被运用,例如清理磁盘中不要的暂存盘、备份系统数据、检查远程服务器的邮件等。对于这些重复性的工
作,其实不需要每次都辛苦地运行这些程序。可利用任务调度命令,指定系统定期在某个时间运行这些程序,轻轻松松完成想要执行的工作。
任务调度的crond常驻命令
crond 是Linux用来定期执行程序的命令。当安装完成操作系统后,默认便会启动此任务调动命令。crond命令每分钟会定期检查是否有要
执行的工作,如果有要执行的工作,便会自动执行该工作。由于任务调度中间的操作过程十分繁杂,我们只将任务调度文件的写法介绍给大家
,供大家参阅:
Minute Hour Day Month DayOfWeek Command
在这段文字中除了“Command”是每次都必须指定的字段以外,其他自动皆可视需求自行决定是否指定。
六,任务调度的系统工作
/ect/crontab/文件是Linux系统工程的任务调度设置文件,其默认的内容如下:
SHELL=/bin/bash ← 指定执行任务调度工作时所使用的SHELL
PATH=/shin:/bin:/usr/sbin:/usr/bin ← 指定命令搜索的路径
MAILTO=root ← 指定将输出结果给root用户
HOME=/ ← 指定跟目录