最近在VPS搭建了很多基于Docker的项目,都是随便玩玩。不过说实话,Docker很适合我这种懒人使用,特别简单粗暴。特别是快速部署方面,很节省时间。

Docker

分享一下安装的心得

卸载旧版本

防止之前服务器已经安装docker旧的版本,所以先卸载一下

1# CentOS
2sudo yum remove docker docker-common docker-selinux docker-engine
3
4# Debian
5sudo apt-get remove docker docker-engine docker.io containerd runc

安装依赖

1# CentOs
2sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3
4# Debian
5sudo apt-get update
6sudo apt-get install ca-certificates curl gnupg lsb-release

添加安装源

CentOS安装方式

1# 阿里云Docker源
2sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3
4#官方源
5sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
6
7#关闭测试版本list(只显示稳定版)如果安装旧版就不用运行这段代码
8sudo yum-config-manager --enable docker-ce-edge
9sudo yum-config-manager --enable docker-ce-test

Debian安装方法

1# 添加密钥
2sudo mkdir -p /etc/apt/keyrings
3curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
4
5# 添加仓库
6echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装Docker

安装新版本的docker

1# CentOS
2sudo yum makecache fast
3sudo yum install docker-ce docker-ce-cli docker-compose-plugin
4
5# Debian
6sudo apt install docker-ce docker-ce-cli docker-compose-plugin

如果想指定版本安装,方法如下

 1# 搜索可用的版本
 2yum list docker-ce.x86_64  --showduplicates | sort -r
 3apt-cache policy docker-ce
 4
 5# 安装指定版本
 6sudo yum install <NAME>
 7sudo apt install <NAME>
 8#注:<name>写的是检测的版本。
 9
10# 比如我想安装的是 5:28.3.2 那就运行
11
12sudo yum install docker-ce-17.03.0.ce.1-1.el7.centos
13sudo apt inatall docker-ce=5:28.3.2-1~debian.12~bookworm

启动Docker和相关的服务

1sudo systemctl enable docker
2sudo systemctl start docker

运行测试程序

1docker run hello-world
2
3#出现如下及安装成功 
4
5Hello from Docker!
6
7This message shows that your installation appears to be working correctly.

简单的Docker运维

官网文档上面也有很完善的解答和方法,下面介绍几种常用的命令。

拉取镜像

1docker pull [镜像名]:[标签]

例如,拉取 Debian 镜像

1docker pull debiann:unstable

运行容器

交互模式 适合需要手动操作容器内部环境的场景。 非交互模式 适合运行不需要用户交互的长期服务。

 1# 交互模式运行
 2docker run -d --name [容器名] [镜像名]:[标签]
 3# 非交互模式运行
 4docker run -d --name [容器名] [镜像名]:[标签]
 5
 6# 带存储化运行
 7docker run -d --name [容器名] -v [宿主机目录]:[容器内目录] [镜像名]:[标签]
 8
 9# 网络访问运行
10docker run -d --name [容器名] --network host [镜像名]:[标签]
11
12# 端口访问方式
13docker run -d --name [容器名] -p [宿主机端口]:[容器端口] [镜像名]:[标签]

进入容器Shell命令行

1docker exec -it [容器名] /bin/bash

查看容器运行情况

查看当前容器

1docker ps

查看所有容器(包含停止的)

1docker ps -a

管理容器

启动停止的容器

1docker start [容器名]

停止容器

1docker stop  [容器名]

删除容器

1docker rm [容器名]

删除镜像

1docker rmi [镜像名]:[标签]

查看容器占用

1docker stats

容器保存更改

把修改保存为新镜像

1docker commit [容器名] [新镜像名]

修改运行配置文件

Docker 容器的设计理念是不可变性,即一旦容器启动,其配置和文件系统通常是固定的。我们可以删除重建,但是关键数据要及时保存和备份。

Docker 命令修改

1docker stop [容器名]
2docker rm [容器名]
3docker run -d --name [容器名] -p [本机端口]:[容器端口] [容器名]:[标签] -v [宿主机目录]:[容器内目录] 

Docker Compose 修改

docker-compose 来管理容器,可以通过修改 docker-compose.yml 文件并重新部署来更新配置。

1docker-compose down
2docker-compose up -d

更换国内加速源

更换 Docker 镜像加速源可以帮助你更快地拉取镜像,特别是在国内网络环境下。

  • Docker 的镜像加速配置文件是 /etc/docker/daemon.json
1sudo mkdir -p /etc/docker
2sudo nano /etc/docker/daemon.json
  • 添加镜像加速器配置

daemon.json 文件中添加以下内容

1{
2    "registry-mirrors": [
3        "https://docker.1ms.run", //加速器地址
4        "https://docker.m.daocloud.io"
5    ]
6}
  • 重启 Docker 服务
1sudo systemctl daemon-reload
2sudo systemctl restart docker
  • 验证配置加速源
1docker info | grep -A 1 Mirrors