Centos7安装Docker和命令

本文详细介绍了在Centos7环境下安装Docker的过程,包括环境准备、软件包安装、镜像仓库设置、Docker服务管理及常见问题解决。同时,涵盖了Docker的基本命令操作,如镜像管理、容器操作、网络配置等,以及如何处理Docker创建容器时的防火墙问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、环境搭建

官方文档地址

  1. 确定centos7及以上版本
cat /etc/redhat-release
  1. 安装GCC编辑器
yum -y install gcc
yum -y install gcc-c++
gcc -v
  1. 卸载旧版本
yum remove docker \\
                  docker-client \\
                  docker-client-latest \\
                  docker-common \\
                  docker-latest \\
                  docker-latest-logrotate \\
                  docker-logrotate \\
                  docker-selinux \\
                  docker-engine-selinux \\
                  docker-engine
  1. 安装需要的软件包
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
  1. 设置stable镜像仓库(特别注意:不要从官网下太慢使用阿里云的镜像)
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 更新 yum 软件包索引(yum下载会快一些)
yum makecache fast
  1. 安装 docker 社区版(CE)
yum -y install docker-ce

不安装CE版本

yum -y update
yum -y install docker
service docker start
  1. 启动docker
systemctl start docker

设置开机启动

systemctl enable docker

注意:如果无法启动报错:Job for docker.service failed because the control process exited with error code. See “systemctl status docker.service” and “journalctl -xe” for details
如下操作:

rm -rf /var/lib/docker/
vim /etc/docker/daemon.json
{ "graph": "/mnt/docker-data", "storage-driver": "overlay" }
  1. 查看docker版本
docker version
  1. 配置镜像加速
    在这里插入图片描述
mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF' 
{ "registry-mirrors": ["https://3fv7kot3.mirror.aliyuncs.com"] } 
EOF
sudo systemctl daemon-reload 
sudo systemctl restart docker
  1. 卸载docker
yum remove docker-ce
rm -rf /var/lib/docker

离线安装包方式安装,下载地址

https://download.docker.com/linux/static/stable/x86_64/

(1)解压二进制包

tar -zxvf docker-19.03.10.tgz 

变成可执行文件

mv docker/* /usr/bin

(2) systemd 管理docker,新增docker.service文件,这样可以将docker注册为service服务。

cat > /usr/lib/systemd/system/docker.service << EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
EOF

(3)创建配置文件

mkdir /etc/docker

registry-mirrors 阿里云镜像加速器

cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF

(4)启动并设置开机启动

systemctl daemon-reload
systemctl start docker
systemctl enable docker
docker info

二、Docker命令

  1. 列出本地主机上的镜像
docker images
  1. 查询某个镜像
docker search tomcat
  1. 下载镜像(不写版本号默认最新版本)
docker pull tomcat
  1. 重命名镜像名称
如果镜像名称太长可以重新命名
docker tag 原镜像名称 新镜像名称
docker tag www.baidu.com/images/mysql:5.6 mysql:5.6
修改完后将原镜像删除注意根据名字:tag删除不能根据ID删除
docker rmi -f www.baidu.com/images/java:8
  1. 删除镜像
删除单个
docker rmi -f tomcat:7
删除多个
docker rmi -f tomcat nginx
删除全部
docker rmi -f $(docker images -qa)
删除none的镜像
docker rmi $(docker images | grep "none")
  1. 列出容器
列出所有在运行的容器信息
docker ps
列出最近创建的容器信息
docker ps -l
列出最近创建的5个容器信息
docker ps -n 5
  1. 运行容器
-it交互式运行,--name重命名
docker run -it --name mytomcat tomcat
启动守护式容器(后台运行)
docker run  -d id
  1. 容器停止退出
容器停止退出
exit
容器不停止退出
Ctrl + P + Q
  1. 进入容器(id或者名字)
直接进入容器启动命令的终端,不会启动新的进程
docker attach id
在容器中打开新的终端,并且启动新的进程,不进入容器直接获得结果
docker exec -it id ls -l /temp 
进入容器
docker exec -it id /bin/bash 
  1. 启动容器(id或者名字)
docker start id
  1. 重启容器
重启docker
service docker restart
docker restart id
  1. 停止容器
docker stop id
强制停止容器
docker kill id
  1. 删除容器
docker rm id
强制删除
docker rm -f id
删除多个容器
docker rm -f $(docker ps -qa)
  1. 从容器内拷贝文件到主机
docker cp id:/temp/yum.log /root
  1. 查看容器日志
-f最新日志,-t时间戳,--tail 数字显示最后多少条
docker logs -ft --tail 30 id
  1. Dockerfile创建镜像
docker build -f Dockerfile-eureka-7001 -t eureka-7001 . (注意后面这个点不要丢了)
docker run --name eureka-7001 -p 7001:7001 -d 容器id

17.网络命令

创建自己的网络
docker network create -d bridge my-net
查看docker网卡
docker network ls
查看已有网桥
brctl show
删除网络
docker network rm my-net
将容器加入自己的网络之后互相自动link
docker network connect my-net redis
获取容器/镜像的元数据
docker inspect my-net

18.容器内安装ping命令

apt-get update && apt-get install iputils-ping

清理docker产生的日志
查看磁盘空间
df -h
进入容器目录

cd /var/lib/docker/containers

进入容器ID的目录后查看文件大小
ll -h
创建脚本删除日志文件

cd /usr/local
vi clean_docker_logs.sh
#!/bin/sh 
echo "======== start clean docker containers logs ========"  
logs=$(find /var/lib/docker/containers/ -name *-json.log)  
for log in $logs  
        do  
                echo "clean logs : $log"  
                cat /dev/null > $log  
        done  
echo "======== end clean docker containers logs ========"
sh clean_docker_logs.sh

在这里插入图片描述

1.删除不再使用的数据卷:
docker volume prune
2.删除 build cache 
docker builder prune
3.docker 系统一键清理没用的空间
docker system prune
4.键删除所有已经停止的容器
docker container prune
5.查看docker占用
docker system df

三、Docker创建容器时防火墙问题

查看防火墙状态
https://www.jianshu.com/p/10c467600ef9
firewall-cmd --state
systemctl start firewalld
systemctl stop firewalld
systemctl enable firewalld
查看所有打开的端口号
firewall-cmd --list-ports
添加端口记得重启firewall(–zone #作用域–add-port=80/tcp #添加端口,格式为:端口/通讯协议–permanent #永久生效,没有此参数重启后失效)
firewall-cmd --zone=public --add-port=6379/tcp --permanent
删除端口号
firewall-cmd --zone=public --remove-port=6399/tcp --permanent
重启firewall
firewall-cmd --reload
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值