本文最后更新于 2025年4月18日 下午
安装
ps:
- docker.io 是 Debian 团队维护的
- docker-ce 是 docker 官方维护的社区版(Community Edition)
- docker-ee 是 docker 官方维护的商业版(Enterprise Edition)
docker安装
官方脚本
1
| curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
|
debian/ubuntu
建议直接安装apt库的docker-io版
1
| apt update && apt install -y docker.io
|
查看版本
docker-compose安装
从github上下载文件(linux通用)
1
| curl -L "https://github.com/docker/compose/releases/download/latest/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
|
查看版本
debian/ubuntu安装docker-ce
- 更新软件包列表:
在终端中执行以下命令以确保软件包列表是最新的:
- 安装依赖包:
安装一些必要的软件包,以便使用HTTPS传输:1
| apt install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common dirmngr
|
- 添加Docker官方的GPG密钥:
1
| curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
|
- 添加Docker软件包仓库:
1
| add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
|
- 更新软件包列表:
再次运行更新以获取Docker软件包:
- 安装Docker Engine:
1
| apt install docker-ce -y
|
- 验证Docker版本:
运行以下命令来验证Docker是否正确安装:
- 将Docker设置为开机启动:
- 将用户添加到docker组(可选):
如果想允许非root用户运行Docker命令,可以将他们添加到docker用户组中:1
| usermod -aG docker your_username
|
请将 “your_username” 替换为希望添加到docker组的用户名。
RedHat/Cent安装docker-ce
卸载旧版本(如果装过)
1
| yum remove docker docker-common docker-selinux docker-engine
|
安装依赖
1
| yum install -y yum-utils device-mapper-persistent-data lvm2
|
查看可用docker版本有哪些
1
| yum list docker-ce --showduplicates | sort -r
|
选择一个版本并安装:yum install docker-ce-版本号
注意:24版本和26版本的镜像不通用
1
| yum -y install docker-ce-24.0.0
|
查看版本号
改查
修改容器配置参数
1
| /var/lib/docker/containers/<容器ID>
|
修改docker默认存储目录
1
| vim /etc/docker/daemon.json
|
1 2 3
| { "data-root": "/data/docker" }
|
1
| systemctl daemon-reload && systemctl restart docker
|
一句话命令(测试)
1
| mkdir -p /etc/docker && echo '{"data-root":"/data/docker"}' | tee /etc/docker/daemon.json >/dev/null && systemctl restart docker
|
查看容器启动命令
1
| docker run --rm -v /var/run/docker.sock:/var/run/docker.sock cucker/get_command_4_run_container <容器ID>
|
其他命令
docker-compose重新构建容器
拉取镜像
1
| docker pull <images_name>:latest
|
设置容器开机自启
1
| --restart=always //容器初次启动添加的参数
|
1
| docker update --restart=always <docker_ID> //已启动的容器设置
|
1
| docker update --restart=no <docker_ID>
|
1
| docker ps -aq | xargs -I {} docker update --restart=always {} //批量给所有容器添加自启动标签
|
将文件从本机上传到docker容器
1
| docker cp <local_path> <docker_ID>:<docker_path>
|
从docker容器中下载文件
1
| docker cp <docker_ID>:<local_path> <local_path>
|
将容器保存为镜像
1
| docker commit <docker_ID> <要保存的镜像名称>:v1.1
|
批量操作
给所有容器添加自启动标签
1
| docker ps -aq | xargs -I {} docker update --restart=always {}
|
停止/删除所有容器
1 2
| docker stop $(docker ps -a -q) docker rm $(docker ps -a -q)
|
停止/删除所有名字包含linglong的容器
1 2
| docker stop $(docker ps -a | grep 'linglong' | awk '{print $1}') docker rm $(docker ps -a | grep 'linglong' | awk '{print $1}')
|
删除所有未打dangling标签的镜像
1
| docker rmi $(docker images -q -f dangling=true)
|
删除所有名字包含linglong的镜像
1
| docker rmi $(docker images | grep "linglong" | awk '{print $3}')
|
删除所有镜像
1
| docker rmi -f $(docker images -q)
|
配置docker代理
创建 dockerd 相关的 systemd 目录,这个目录下的配置将覆盖 dockerd 的默认配置
1
| mkdir -p /etc/systemd/system/docker.service.d
|
新建配置文件 http-proxy.conf,这个文件中将包含环境变量
1
| vim /etc/systemd/system/docker.service.d/http-proxy.conf
|
写入代理配置
1 2 3
| [Service] Environment="HTTP_PROXY=http://10.0.0.100:10808" Environment="HTTPS_PROXY=http://10.0.0.100:10808"
|
重新加载配置文件,重启 dockerd
1
| systemctl daemon-reload && systemctl restart docker
|
一句话命令(测试)
1
| mkdir -p /etc/systemd/system/docker.service.d && echo -e '[Service]\nEnvironment="HTTP_PROXY=http://10.0.0.100:10808"\nEnvironment="HTTPS_PROXY=http://10.0.0.100:10808"' > /etc/systemd/system/docker.service.d/http-proxy.conf && systemctl daemon-reload && systemctl restart docker
|