本文最后更新于 2024-02-07,文章内容可能已经过时。

Docker 容器相关命令

启动docker

systemctl start docker

关闭 docker

systemctl stop docker

查看 docker 的运行状态

systemctl status docker

容器是基于 Docker 镜像被创建的。

docker run [Options] image运行容器

docker run [Options] image

#参数说明
--name="名字"           指定容器名字
-d                     后台方式运行
-it                    使用交互方式运行,进入容器查看内容
-p                     指定容器的端口
	-p ip:主机端口:容器端口  配置主机端口映射到容器端口
	-p 主机端口:容器端口(常用)
	-p 容器端口
-P                     随机指定端口
-e					   环境设置
-v					   容器数据卷挂载

运行并进入容器 centos

[root@localhost ~]# docker run -it centos /bin/bash
[root@ce2bbae9f151 /]# ls
bin  etc   lib	  lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr

进入容器,因为通常我们的容器都是使用后台方式来运行的,有时需要进入容器修改配置

  • docker exec -it 容器id /bin/bash
# docker exec 进入容器后开启一个新的终端,可以在里面操作
docker exec -it 容器id /bin/bash
  • docker attach 容器id
  # docker attach 进入容器正在执行的终端
  docker attach 容器id

退出容器

exit 	# 停止容器并退出(后台方式运行则仅退出)
Ctrl+P+Q  # 不停止容器退出

docker ps 查看运行的容器

# 查看当前正在运行的容器
docker ps 
     
-a   # 查看所有容器的运行记录
-n=? # 显示最近创建的n个容器
-q   # 只显示容器的id

docker start 容器id 启动容器

docker start 容器id          # 启动容器
docker restart 容器id        # 重启容器
docker stop 容器id           # 停止当前运行的容器
docker kill 容器id           # 强制停止当前容器

docker logs 容器id查看容器运行日志

docker logs -tf 容器id
docker logs --tail num 容器id  # num为要显示的日志条数

docker top 容器id查看容器中进程信息

docker top 容器id

docker inspect 容器id查看容器的元数据

docker inspect 容器id

对于 centos7 系统

centos7 使用 firewall 命令来开启和关闭防火墙。

1.systemctl 命令

(1)systemctl status firewalld.service 查看防火墙的状态;

(2)systemctl start firewalld.service 启动防火墙;

(3)systemctl stop firewalld.service 关闭防火墙;

(4)systemctl restart firewalld.service 重启防火墙;

(5)systemctl enable firewalld.service 开机启动防火墙;

(6)systemctl disable firewalld.service 开机禁用防火墙;

(7)systemctl is-enabled firewalld.service 查看防火墙是否开机启动;

2.Firewall 区域管理

firewall 引入了 zone 概念,firewall 能将不同的网络连接归类到不同的信任级别,为了便于理解,这里附上级别说明:

 block(阻塞区域)拒绝所有外部的连接,返回icmp-host-prohibited,允许内部发起的连接;

dmz(隔离区域)允许受限制的进入连接;

drop(丢弃区域)丢弃所有进入的包,而不给出任何响应;

external(外部区域)只有指定的连接被接受,一般用于路由转发;

home(家庭区域)允许受信任的计算机被限制的进入连接;

internal(内部区域)信任网络上其他计算机,不会损坏你的计算机。只有选择接受传入的网络连接;

public(公共区域)不信任网络上的任何计算机,只有选择接受传入的网络连接;

trusted(信任区域) 信任所有连接;

work(工作区域) 允许受信任的计算机被限制的进入连接。

查看区域管理命令示例:

(1)firewall-cmd --list-all-zones 查看域详情列表;

(2)firewall-cmd --get-zones 查看支持的区域列表;

(3)firewall-cmd --get-default-zone 查看默认的区域列表;

(4)firewall-cmd --set-default-zone=home 设置默认的区域;

(5)firewall-cmd --zone=home --list-all 查看 home 区域 l;

(6)firewall-cmd --get-active-zone 查看活动的区域;

(7)firewall-cmd --permanent-new-zone=myself 创建自己的区域;

(8)firewall-cmd --permanent-delete-zone=myself 删除区域;

3.Firewall 服务端口管理

在下面提到的命令示例中,带 "--permanent" 永久生效的策略记录(除了查看)执行后,必须执行 "--reload" 参数后才能立即生效,否则需要重启后再生效。不带 "--permanent" 的命令立即生效,但是 reload 或者 restart 后失效。

(1)firewall-cmd --state 查看防火墙状态;

(2)firewall-cmd --get services 查看已被 firewall 提供的一些常用服务;

(3)firewall-cmd --zone=public --permanent --list-services 查看某域的服务(注:加了 --permanent 表示永久服务,不加显示所有服务,包含临时服务;不加 --zone 表示默认区域);

(4)firewall-cmd --zone=public--permanent --add-service=http 添加某域的服务;

(5)firewall-cmd --zone=public--permanent --remove-service=http 移除某域的服务(注:加了 --permanent 表示永久服务,不加显示所有服务,包含临时服务;不加 --zone 表示默认区域);

(6)firewall-cmd --zone=home--permanent --add-por=5000/tcp 添加端口;

(7)firewall-cmd --zone=home--permanent --remove-por=5000/tcp 删除端口;

(8)firewall-cmd --zone=home--permanent --add-por=5000-5005/tcp 添加多端口(注:加了 --permanent 表示永久服务,不加显示所有服务,包含临时服务;不加 --zone 表示默认区域;端口后面的 tcp 和 udp 表示协议类型);

(9)firewall-cmd --zone=public --permanent --list-ports 查看端口情况(注:加了 --permanent 表示永久服务,不加显示所有服务,包含临时服务;不加 --zone 表示默认区域);

(10)firewall-cmd --zone=public --query-service=ssh 查询服务是否被允许(不加 --zone 表示默认区域);

(11)firewall-cmd --permanent --zone=public --add-forward-port=80:proto=tcp:toport=8080 将 80 端口的流量转发至 8080 端口;

(12)firewall-cmd --permanent --zone=public --add-forward-port=80:proto=tcp:toaddr=192.168.1.1 将 80 端口的流量转发至 192.168.1.1;

(13)firewall-cmd --permanent --zone=public --add-forward-port=80:proto=tcp:toaddr=192.168.1.1:toport=8080 将 80 端口的流量转发至 192.168.1.1 的端口 8080 端口(注:不加 ip 地址,默认转发到本地的端口;不加 --zone 表示默认区域;不加 --permanent 表示临时增加,reload 或则 restart 后失效)。

4. 手动编写服务

可以将某个程序需要的端口写在一个自己编写的服务里,然后直接添加服务就可以。

/usr/lib/firewalld/services 创建自己的服务,格式可以拷贝 /etc/firewalld/services 任意一个服务。

(1)查找服务:

firewalld-cmd --get-srvice |grep myself

(2)重新加载配置:

firewall-cmd --reload

1、安装软件的命令格式
rpm -ivh filename.rpm
1
2、卸载软件的命令格式
rpm -e filename.rpm
1
3、升级软件的命令格式
rpm -Uvh filename.rpm
1
4、查询软件描述信息的命令格式
rpm -qpi filename.rpm
1
5、列出软件文件信息的命令格式
rpm -qpl filename.rpm
1
6、查询文件属于哪个 RPM 的命令格式
rpm -qf filename.rpm