常用Linux和Docker命令

创建目录

mkdir xxx  创建目录
mkdir -p x/y/z  创建多级目录

创建文件

touch xxx 创建文件
vim xxx  创建文件并编辑
rmdir xxx  删除空目录
rm xxx 删除子目录或文件
rm -r xxx 会询问,递归删除,可以删除子目录
rm -rvf xxx  不会询问,显示已删除信息
rm -rf xxx  不会询问,不显示已删除信息

复制

cp xxx(被复制文件) xxx(复制到某个位置)  拷贝文件
cp -rv xxx xxx  连同子目录一起拷贝,并显示信息

重命名

mv xxx(源文件名) xxx(新文件名)  重命名
mv xxx  /目录名  移动xxx文件到某个位置(如果只有一个目录不用加 / )

查看文件

cat xxx  查看文件,一般查看较小的文件
more xxx  查看文件,一般查看较大的文件  //回车 和 空格 (显示百分比)
less xxx  和more类似,操作键不同 // 上下键(显示底行命令,q直接退出)
tail xxx  从尾部开始查看
tail -N xxx  从尾部查看N行
tail -f xxx  跟随查看,一般用于查看日志( 可以通过echo命令进行测试:echo 内容 >> 文件 )

查找文件

find 查找文件或目录      
如果没有指定搜索路径,默认从当前目录查找
-name 按名称查找,精准查找
-iname 按名称查找,忽略大小写
*:匹配所有
?:匹配单个字符
比如find  /etc  -name  “init???”在目录/etc中查找以init开头的,且后面有三位的文件

压/解文件

tar  -zcvf  xx.tar.gz  xxx.txt  压缩文件
-z  使用gzip压缩
-c  创建压缩文件
-x  解开压缩文件
-v  显示文件信息
-f  指定压缩后的文件名
-C /路径名:表示将压缩包解压到指定路径
tar  -zxvf  xxx.tar.gz  解压缩

查看进程

ps -aux  查看系统中的进程信息
-a  显示所有进程信息
-u  以用户格式显示进程信息
-x  显示后台进程运行参数
ps -aux|grep xxx  筛选进程
ps -ef  以全格式显示当前所有进程

杀进程

kill pid  通过进程pid杀死当前进程
kill -9 pid  强行杀死进程(常用)
例如:在vm上的虚拟机桌面上右键打开终端,然后在Xshell上找到 bash 对应的进程pid 

启动服务

systemctl  start  服务名(xxx.service)  启动该服务
systemctl  restart  服务名(xxx.service)  重启该服务 
systemctl  stop  服务名(xxx.service)  停止该服务
systemctl  status  服务名(xxx.service)  查看该服务
​
例如: 
systemctl  status  firewalld.service  查看防火墙
systemctl  stop  firewalld.service  关闭防火墙
​
因为防火墙会随着虚拟机开机自动运行,避免麻烦,我们可以永久关闭防火墙
[root@localhost 桌面]# systemctl list-unit-files |grep firewalld  找到防火墙
[root@localhost 桌面]# systemctl disable firewalld.service  关闭防火墙

查看端口

netstat -anp |grep 8080  查看8080端口是否被占用

新增用户

useradd  xxx(用户名)  新增用户(创建成功后会在home目录下创建对应文件夹)
passwd  xxx(用户名)  设置该用户密码
su - xxx(用户名)  切换至该用户
whoami/who am i  查看当前用户
id xxx(用户名)  查看当前用户 
userdel [-r] xxx(用户名) 删除用户,-r表示删除该用户的home目录

新增组

groupadd xxx(组名)  新增用户组
usermod -g xxx(组名) yyy(用户名)  修改用户的用户组
useradd -g xxx(组名) yyy(用户名)  新增用户时直接添加组 
groups xxx(用户名) 查看当前用户所在的组
cat  /etc/passwd  可以查看系统中的所有用户
cat  /etc/shadow  可以查看系统中的所有用户的密码
cat  /etc/group  可以查看系统中的所有用户组
​
chmod u=rwx,g=rw,o=r a.txt 或者 chmod 764 a.txt(常用)

docker

启动docker

systemctl start docker
​
注:关闭防火墙之后docker需要重启
service docker restart

查看本地全部镜像

docker rmi 镜像的标识(需要先删除该镜像创建的容器)

镜像的导入导出

# 将本地的镜像导出
docker save -o 导出的路径 镜像id
​
# 导出到当前路径,镜像命名为:mytomcat
[root@localhost ~]# docker save -o ./mytomcat b8dfe9ade316
​
# 加载本地的镜像文件
docker load -i 镜像文件
​
[root@localhost ~]# docker load -i mytomcat
​
# 修改镜像名称
docker tag 镜像id 新镜像名称:版本
​
[root@localhost ~]# docker tag b8dfe9ade316 tomcat:8.5

运行容器

# 简单操作
docker run 镜像的标识|镜像名称[:tag]
​
# 常用的参数
docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像的标识|镜像名称[:tag]
# -d:代表后台运行容器
# -p 宿主机端口:容器端口:为了映射当前Linux的端口和容器的端口
# --name 容器名称:指定容器的名称(自定义)
​
[root@localhost ~]# docker run -d -p 8888:8080 --name mytomcat8.5 b8dfe9ade316
​
# 测试:浏览器访问 虚拟机ip:8888

查看正在运行的容器

docker ps [-qa]
# -a:查看全部的容器,包括没有运行
# -q:只查看容器的标识
​
[root@localhost ~]# docker ps

查看容器日志

docker logs -f 容器id
# -f:可以滚动查看日志的最后几行
​
[root@localhost ~]# docker logs -f 4411f56f1fbb

进入容器内容部

docker exec -it 容器id bash
​
[root@localhost ~]# docker exec -it 4411f56f1fbb bash
​
# 退出当前容器 exit
root@4411f56f1fbb:/usr/local/tomcat# exit

复制内容到容器

docker cp 文件名称 容器id:容器内部路径
​
# 把主机root目录下的a.txt文件拷贝到容器的temp目录下(由于tomcat默认路径在/usr/local/tomcat)
[root@localhost ~]# docker cp /root/a.txt 441:/usr/local/tomcat/temp
​
# 把容器的temp目录下的a.txt拷贝到主机root目录下
[root@localhost ~]# docker cp 441:/usr/local/tomcat/temp/a.txt /root

重启&启动&停止&删除容器

# 重新启动容器
[root@localhost ~]# docker restart 容器id
​
# 启动停止运行的容器
[root@localhost ~]# docker start 容器id
​
# 停止指定的容器(删除容器前,需要先停止容器)
[root@localhost ~]# docker stop 容器id
​
# 停止全部容器
[root@localhost ~]# docker stop $(docker ps -qa)
​
# 删除指定容器
[root@localhost ~]# docker rm 容器id
​
# 删除全部容器
[root@localhost ~]# docker rm $(docker ps -qa)

Docker安装Tomcat/MySQL

# 运行Tomcat容器
[root@localhost ~]# docker run -d -p 8080:8080 --name mytomcat b8dfe9ade316
​
# 拉取MySql镜像
[root@localhost ~]# docker pull daocloud.io/library/mysql:5.7.4
​
# 运行MySql容器
[root@localhost ~]# docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root daocloud.io/library/mysql:5.7.4

创建数据卷

docker volume create 数据卷名称
​
#创建一个名为tomcat的数据卷
[root@iz8vbdmrir2n6xqzrbd93hz ~]# docker volume create tomcat
[root@iz8vbdmrir2n6xqzrbd93hz ~]# cd /var/lib/docker/volumes

查看数据卷详情

docker volume inspect 数据卷名称
[root@iz8vbdmrir2n6xqzrbd93hz ~]# docker volume inspect tomcat
​
docker volume ls
[root@iz8vbdmrir2n6xqzrbd93hz ~]# docker volume ls

删除数据卷

docker volume rm 数据卷名称
[root@iz8vbdmrir2n6xqzrbd93hz ~]# docker volume rm tomcat

容器映射数据卷

映射有两种方式:
​
- 第一种:通过数据卷名称映射,如果数据卷不存在。Docker会帮你自动创建,会将容器内部自带的文件,存储在默认的存放路径中。
- 第二种:通过路径映射数据卷,直接指定一个路径作为数据卷的存放位置。但是这个路径下是空的。
​
# 第一种:通过数据卷名称映射
docker run -v 数据卷名称:容器内部的路径 镜像id
​
[root@iz8vbdmrir2n6xqzrbd93hz ~]# docker volume create mytomcat_volume
[root@iz8vbdmrir2n6xqzrbd93hz ~]# docker run -d -p 8080:8080 --name mytomcat -v mytomcat_volume:/usr/local/tomcat/webapps b8
[root@iz8vbdmrir2n6xqzrbd93hz ~]# cd /var/lib/docker/volumes
[root@iz8vbdmrir2n6xqzrbd93hz volumes]# ls
3fdc377f615693578180d1e7433d30e42baa53058eb55ebf86b6c4d0ed27d87a  metadata.db mytomcat_volume
[root@iz8vbdmrir2n6xqzrbd93hz volumes]# cd mytomcat_volume/
[root@iz8vbdmrir2n6xqzrbd93hz mytomcat_volume]# ls
_data
[root@iz8vbdmrir2n6xqzrbd93hz mytomcat_volume]# cd _data/
[root@iz8vbdmrir2n6xqzrbd93hz _data]# ls
docs  examples  host-manager  manager  ROOT
​
​
# 第二种:通过路径映射数据卷
docker run -v 路径:容器内部的路径 镜像id
​
[root@iz8vbdmrir2n6xqzrbd93hz ~]# docker run -d -p 8080:8080 --name mytomcat -v /opt/yangl:/usr/local/tomcat/webapps b8
f70074ae145572c85c00afa5be9c2abb938906238be1c958b51d02806975f8de
[root@iz8vbdmrir2n6xqzrbd93hz ~]# cd opt
-bash: cd: opt: No such file or directory
[root@iz8vbdmrir2n6xqzrbd93hz ~]# cd /opt/yangl
[root@iz8vbdmrir2n6xqzrbd93hz yangl]# ls
[root@iz8vbdmrir2n6xqzrbd93hz yangl]# mkdir ROOT
[root@iz8vbdmrir2n6xqzrbd93hz yangl]# cd ROOT/
[root@iz8vbdmrir2n6xqzrbd93hz ROOT]# vim index.html

Dockerfile自定义镜像

from: 指定当前自定义镜像依赖的环境
copy: 将相对路径下的内容复制到自定义镜像中
workdir: 声明镜像的默认工作目录
run: 执行的命令,可以编写多个
cmd: 需要执行的命令(在workdir下执行的,cmd可以写多个,只以最后一个为准)
​
# 制作SSM容器镜像,video-web.war要放在Dockerfile的同级目录下
# 右键创建文件,命名为:Dockerfile 该文件无后缀,然后在文件添加如下内容
from daocloud.io/library/tomcat:8.5.15-jre8
copy video-web.war /usr/local/tomcat/webapps
​
# 在root目录下创建一个目录,然后把Dockerfile文件和video-web.war都拷贝过来
[root@iz8vbdmrir2n6xqzrbd93hz ~]# mkdir myssm
[root@iz8vbdmrir2n6xqzrbd93hz ~]# cd myssm
[root@iz8vbdmrir2n6xqzrbd93hz myssm]# ls
Dockerfile  video-web.war

通过Dockerfile制作镜像

docker build -t 镜像名称[:tag] .
[root@iz8vbdmrir2n6xqzrbd93hz myssm]# docker build -t tomcat-video:1.0 .
​
[root@iz8vbdmrir2n6xqzrbd93hz myssm]# docker images
​
[root@iz8vbdmrir2n6xqzrbd93hz myssm]# docker run -d -p 8081:8080 --name tomcat-video-ssm cb8

Docker-Compose

下载Docker-Compose

去github官网搜索docker-compose,下载1.24.1版本的Docker-Compose

下载路径:https://github.com/docker/compose/releases/tag/1.24.1

设置权限

需要将docker-compose-Linux-x86_64文件拷贝到/usr/local  目录下,然后设置docker-compose-Linux-x86_64文件的权限
​
[root@iz8vbdmrir2n6xqzrbd93hz ~]# cd /usr/local
[root@iz8vbdmrir2n6xqzrbd93hz local]# ls
aegis  bin  docker-compose-Linux-x86_64  etc  games  include  lib  lib64  libexec  sbin  share  src
[root@iz8vbdmrir2n6xqzrbd93hz local]# chmod 777 docker-compose-Linux-x86_64 

配置环境变量

[root@iz8vbdmrir2n6xqzrbd93hz local]# vim /etc/profile
# 添加内容:export PATH=/usr/local:$PATH
[root@iz8vbdmrir2n6xqzrbd93hz local]# source /etc/profile
# source /etc/profile加载成功后,在任意目录下执行:docker-compose-Linux-x86_64 会出现以下信息
[root@iz8vbdmrir2n6xqzrbd93hz local]# docker-compose-Linux-x86_64 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值