CentOS 7环境下安装Docker与Docker-Compose

编程 · 2023-07-10 · 321 人浏览

服务器环境:CentOS 7.9 64位

Docker 安装

校验系统版本

查看系统内核:

uname -r

查看系统版本:

cat /etc/os-release

Docker 要求系统为64位、Linux内核版本 3.10 以上。

卸载旧版本(可选)

yum remove docker 
    docker-client 
    docker-client-latest 
    docker-common 
    docker-latest 
    docker-latest-logrotate 
    docker-logrotate 
    docker-engine

安装依赖包

yum install -y yum-utils

设置镜像仓库

阿里云镜像源:

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新 yum 软件包索引

yum makecache fast

安装 Docker-CE

yum -y install docker-ce docker-ce-cli containerd.io

:::tip{title="提示"}
当使用yum后用ctrl+z强制退出,再次yum install xxx会出现:Waiting for process with pid XXX to finish.
:::
当使用ps命令时,却看不到对应的线程。这时可以通过下面的命令查询与yum有关的杀不死的进程:

ps -ef | grep yum

然后执行指令:

kill -9 XXX

注意输入的数字是第三列的,如果输第二列的还是杀不掉。

启动 Docker

systemctl start docker
## 停止
systemctl stop docker
## 重启
systemctl restart docker
## 设置开机启动
systemctl enable docker

查看 Docker 版本

docker version

测试

通过运行 hello-world 镜像来验证是否正确安装了Docker Engine-Community。

docker run hello-world

查看本地镜像

docker images

Docker 卸载

## 卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
## 删除资源(docker的默认工作路径)
rm -rf /var/lib/docker

阿里云镜像加速

mkdir -p /etc/docker

tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://g71ab123.mirror.aliyuncs.com"]
}
EOF

systemctl daemon-reload

systemctl restart docker

常用命令

## 显示docker的系统信息
docker info
## 帮助命令
docker 命令 --help

镜像命令

## 下载镜像
docker pull 镜像名
## 指定版本下载
docker pull mysql:5.7
## 删除指定镜像
docker rmi -f 镜像id
## 删除多个镜像
docker rmi -f 镜像id 镜像id
## 删除全部镜像
docker rmi -f $(docker images -aq)

容器命令

有了镜像才能创建容器,这里下载一个 centos 镜像来测试学习。

docker pull centos

新建容器并进入

docker run -it centos /bin/bash

-it:使用交互式方式运行。

退出容器

## 停止并退出
exit

想要容器不停止退出,使用快捷键Ctrl + P + Q

列出容器

docker ps
## 列出当前正在运行的容器 + 历史运行过的容器
docker ps -a
## 显示最近创建的容器
docker ps -n=1
## 只显示容器id
docker ps -aq

删除容器

## 不能删除正在运行的容器,强制删除用 rm -f
docker rm 容器id
## 删除所有容器
docker rm -f $(docker ps -aq)

启动和停止容器

docker start 容器id
docker stop 容器id
docker restart 容器id
docker kill 容器id

其他命令

安装 docker-compose

curl -L https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
## 添加执行权限
chmod +x /usr/local/bin/docker-compose
## 查看版本信息
docker-compose --version
  • -L/--location: 如果服务器报告请求的页面已移动到不同的位置,此选项将使curl在新的地方重做请求
  • -o/--output : 指定输出文件名称

    端口

    查看端口

    ## 查看防火墙打开的在公共区域中允许访问的端口列表
    firewall-cmd --zone=public --list-ports

    开放端口

    ## 查看防火墙状态
    firewall-cmd --state
    ## 如果处于关闭状态
    systemctl start firewalld.service
    ## 开启8080端口
    firewall-cmd --zone=public --add-port=8080/tcp --permanent
    ## 重启防火墙
    systemctl restart firewalld.service
    ## 重新载入配置
    firewall-cmd --reload
  • --zone=public:表示作用域为公共的
  • --add-port=8080/tcp:添加tcp协议的端口8080
  • --permanent:永久生效,如果没有此参数,则只能维持当前服务生命周期内,重新启动后失效

    防火墙

    ## 关闭防火墙
    systemctl stop firewalld.service
    ## 永久关闭防火墙
    systemctl disable firewalld.service
Docker
Theme Jasmine by Kent Liao