------------------------------------------------
docker
卸载
sudo apt remove docker docker-engine docker.io containerd runc
安装依赖
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
添加阿里云源
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
查看版本
apt-cache madison docker-ce
安装
sudo apt install docker-ce=5:26.0.0-1~ubuntu.24.04~noble \
docker-ce-cli=5:26.0.0-1~ubuntu.24.04~noble \
containerd.io
apt-get install docker-ce=5:27.5.1-1~ubuntu.24.04~noble \
docker-ce-cli=5:27.5.1-1~ubuntu.24.04~noble \
containerd.io
apt-get install docker-ce=5:29.7.2-1~ubuntu.26.04~resolute \
docker-ce-cli=5:29.7.2-1~ubuntu.26.04~resolute \
containerd.io
查看版本
docker compose version
------------------------------------------------
docker加速代理pull
root@qunr:~# cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": [
"https://docker.1panel.live",
"https://hub.rat.dev",
"https://dockerpull.com"
]
}
EOF
root@qunr:~# systemctl daemon-reload
root@qunr:~# systemctl restart docker
------------------------------------------------
docker常用命令
容器状态
docker status
容器信息
docker info
安装docker阿里源
yum -y install yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装指定版本
#查看可用版本
yum list docker-ce --showduplicates | sort -r
#新版本
yum -y install docker-ce-20.10.24-3.el9 docker-ce-cli-20.10.24-3.el9 docker-ce-rootless-extras-20.10.24-3.el9 docker-ce-cli-20.10.24-3.el9
#老18版本
yum -y install docker-ce-18.06.1.ce-3.el7
#20版本
yum -y install --setopt=obsoletes=0 docker-ce-20.10.10-3.el7
#约定安装版本
yum -y install docker-ce-20.10.24-3.el7 docker-ce-cli-20.10.24-3.el7 docker-ce-rootless-extras-20.10.24-3.el7 docker-compose-plugin-20.10.24-3.el7 docker-ce-cli-20.10.24-3.el7
#新版本直接安装docker-compose
yum install -y docker-compose-plugin
官方源rocky9.5
yum install -y yum-utilssudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates | sort -r
yum clean packages
#安装指定版本
yum -y install docker-ce-20.10.24-3.el9 docker-ce-cli-20.10.24-3.el9 docker-ce-rootless-extras-20.10.24-3.el9 docker-ce-cli-20.10.24-3.el9
#新版本直接安装docker-compose
dnf install -y docker-compose-plugin
------------------------------------------------
#更改数据目录
systemctl stop docker
systemctl stop docker.socket
#移动目录
mv /var/lib/docker /data/
#创建软链
ln -s /data/docker /var/lib/docker
#启动docker
systemctl start docker
------------------------------------------------
保存images镜像
docker save 98d8bb571885 > /root/rancher.tar
导入images镜像
docker load -i /root/rancher.tar
修改标签
docker tag 98d8bb571885 rancher/server:latest
将容器制作成images
docker commit java k8s-jingxiang-registry.cn-hangzhou.cr.aliyuncs.com/yaozh.com/centos7jdk17:v2
不需要tag改镜像名
docker save -o tkm-latest.tar my-image:latest
docker load -i tkm-latest.tar
------------------------------------------------
docker中启动所有的容器命令
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)docker中关闭所有的容器命令
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)docker中删除所有的容器命令
docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)docker中删除所有的镜像
docker rmi $(docker images | awk '{print $3}' |tail -n +2)列出docker源
yum list docker-ce --show-duplicates
yum list docker --showduplicate(centos_8)
------------------------------------------------
docker-compose
启动方式
#旧版本
docker-compose -f s.lbu.cn up -d
docker-compose -f s.lbu.cn down
#新版本
docker compose -f s.lbu.cn up -d
docker compose -f s.lbu.cn down
s.lbu.cn的yml文件
services:
nginx:
container_name: s.lbu.cn
image: registry.cn-hangzhou.aliyuncs.com/leiuvn/shilei:v1
ports:
- "8001:80"
volumes:
- /data/wwwroot/s.lbu.cn/:/var/www/html/
restart: always
启动mysql8
mkdir -p /data/mysql8/conf.d
mysql8的yml文件
services:
mysql:
image: registry.cn-hangzhou.aliyuncs.com/leiuvn/mysql:8.0
container_name: mysql8
restart: always
environment:
MYSQL_ROOT_PASSWORD: your_root_password # 设置MySQL的root用户密码
MYSQL_DATABASE: your_database # 创建一个默认数据库(可选)
MYSQL_USER: your_user # 创建一个默认用户(可选)
MYSQL_PASSWORD: your_password # 设置默认用户的密码(可选)
ports:
- "3306:3306" # 将3306端口映射到主机
volumes:
- /data/mysql8:/etc/mysql # 挂载MySQL配置目录
- /data/mysql8_data:/var/lib/mysql # 挂载MySQL数据目录
networks:
mynet:
ipv4_address: 192.168.1.10 # 分配固定IP
networks:
mynet:
driver: bridge
ipam:
config:
- subnet: 192.168.1.0/24 # 定义子网范围
------------------------------------------------
1.# 安装依赖
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
2.# 添加阿里云 GPG 密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 添加阿里云 Docker 软件源
sudo mkdir -p /etc/apt/sources.list.d
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
3.# 更新查看版本
sudo apt update
apt-cache madison docker-ce
4.# 安装28版本
sudo apt install -y docker-ce=5:28.0.0-1~ubuntu.24.04~noble \
docker-ce-cli=5:28.0.0-1~ubuntu.24.04~noble \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
5.# 查看版本开机启动
docker --version
docker compose version
sudo systemctl enable docker
sudo systemctl start docker
------------------------------------------------
dockerfile
编写Dockerfile需要按照以下步骤进行:
选择基础镜像:根据您的应用程序需求,选择适合的基础镜像作为起点。
基础镜像通常包含操作系统和一些预安装的软件。
设置工作目录:
使用WORKDIR指令设置容器内的工作目录。
复制文件:
使用COPY或ADD指令将应用程序代码、依赖项和配置文件复制到容器内。
安装依赖:
如果您的应用程序有依赖项,可以使用适当的包管理工具(如apt-get、yum或npm)在容器内安装它们。
运行命令:
使用RUN指令在容器内执行特定的命令,例如安装软件包、运行脚本等。
暴露端口:如果您的应用程序需要监听特定的端口,可以使用EXPOSE指令声明容器要使用的端口。
定义启动命令:使用CMD或ENTRYPOINT指令定义容器启动时要运行的命令。
这可以是启动应用程序的命令或执行其他操作的脚本。
以上只是Dockerfile编写的基本步骤,具体的内容和指令取决于您的应用程序和需求。
以下是一个简单的示例Dockerfile,以帮助您入门:
Dockerfile
# 使用基础镜像
FROM ubuntu:latest
# 设置工作目录
WORKDIR /app
# 复制应用程序代码到容器内
COPY . /app
# 安装依赖
RUN apt-get update && apt-get install -y python3
# 暴露端口
EXPOSE 8000
# 定义启动命令
CMD ["python3", "app.py"]
在此示例中,我们使用了基于最新的Ubuntu镜像,将当前目录的应用程序代码复制到容器的/app目录中,安装
了Python3,并暴露了容器的8000端口。最后,我们使用CMD指令定义了启动应用程序的命令。根据您的实际需
求和应用程序的特性,您可能需要调整和扩展 Dockerfile。
了解Dockerfile的完整语法和指令,请参考Docker官方文档。
请注意Dockerfile是一个纯文本文件,您可以使用任何文本编辑器编写和编辑它。在准备好Dockerfile后,使
用docker build命令构建镜像,并使用docker run命令创建和运行容器。
------------------------------------------------
docker网络
一新建网络容器指定网络
创建自定义网络:
docker network create my_network
docker network rm my_network
docker network create --subnet=172.20.0.0/16 my_custom_network
查看容器子网:
docker inspect leiuk
运行MySQL容器:
docker run -d --name mysql_container --network my_network --ip 172.20.0.2 -e MYSQL_ROOT_PASSWORD=password mysql:latest
docker run -d --name mysql_container -v /data/mysql_data:/var/lib/mysql --network my_network --ip 172.20.0.2 -e MYSQL_ROOT_PASSWORD=password mysql:latest
确认IP地址设置:
docker inspect mysql_container | grep IPAddress
确保输出中显示的IP地址是你所设置的固定IP地址。
二查看已创建网络
运行以下命令:
docker network ls
这将显示所有 Docker 网络的列表。输出可能如下所示:
NETWORK ID NAME DRIVER SCOPE
5b5df6e811c1 bridge bridge local
d6259f974ce5 host host local
c1bf6b5e85fb my_custom_network bridge local
命令查看详细信息:
docker network inspect my_custom_network
三查看子网信息
docker network inspect my_custom_network
可以使用网络的ID:
docker network inspect 5b5df6e811c1
这将输出关于该网络的详细信息
查找输出中的 "IPAM" 部分,其中包含子网信息。示例输出可能如下所示:
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.19.0.0/24",
"Gateway": "172.19.0.1"
}
]
}
上面的示例中,172.19.0.0/24 是该网络的子网,172.19.0.1 是网关地址。
------------------------------------------------