服务器环境: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