安装Docker CE
Docker CE(Community Edition),Docker社区版,适用于开发人员和运维人员构建容器使用的免费版本
官方安装文档:docs.docker.com/engine/inst…
安装脚本
我这里以
Debian系统和Unbuntu为例,使用国内镜像源写了个安装脚本,其它Linux版本参考官方文档,都是大同小异的
- 拷贝下面脚本文件按照提示执行即可
#!/bin/bash
MIRROR_URL="" # 镜像源URL
select_os() {
echo "请选择操作系统::"
echo "1) debian"
echo "2) ubuntu"
echo "3) 退出"
read -p "请输入选项 (1-3): " os_choice
case $os_choice in
1)
os_choice="debian"
;;
2)
os_choice="ubuntu"
;;
3)
echo "退出..."
exit 0
;;
*)
echo "无效选项,请重新运行脚本并选择有效选项."
exit 1
;;
esac
}
select_mirror_source() {
echo "请选择安装镜像源:"
echo "1) 阿里云"
echo "2) 华为云"
echo "3) 清华镜像"
echo "4) 退出"
read -p "请输入选项 (1-4): " mirror_choice
case $mirror_choice in
1)
echo "正在配置阿里云镜像源..."
MIRROR_URL="https://mirrors.aliyun.com/docker-ce/linux/${os_choice}"
;;
2)
echo "正在配置华为云镜像源..."
MIRROR_URL="https://mirrors.huaweicloud.com/docker-ce/linux/${os_choice}"
;;
3)
echo "正在配置清华镜像源..."
MIRROR_URL="https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/${os_choice}"
;;
4)
echo "退出..."
exit 0
;;
*)
echo "无效选项,请重新运行脚本并选择有效选项."
exit 1
;;
esac
}
install_docker_ce() {
echo "Docker CE开始安装..."
sudo apt-get update
sudo apt-get install -y \
ca-certificates \
curl \
gnupg \
lsb-release
echo "添加Docker的官方GPG密钥..."
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL "${MIRROR_URL}/gpg" | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] $MIRROR_URL $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
echo "Docker CE 安装完成."
}
# 主程序
main() {
# 选择操作系统
select_os
# 选择镜像源
select_mirror_source
# 安装Docker CE
install_docker_ce
echo ""
echo "脚本执行完成!"
}
# 执行主函数
main "$@"
- 默认情况下,docker只允许在root用户下使用,如果想要其它用户使用docker,需要将用户添加到docker用户组
# 创建docker用户组
sudo groupadd docker
# 添加当前用户到docker用户组
sudo usermod -aG docker $USER
- 安装校验
# 能正常输出docker版本号就说明安装成功了
docker version
常用Docker命令
镜像相关
# 查看本地镜像docker images# 搜索镜像
docker search [image]
# 下载镜像
docker pull [image]
# 删除镜像
docker rmi [image]
- 镜像导入到文件,或从文件导入到镜像
# docker导出镜像到文件
docker save [OPTIONS] IMAGE [IMAGE...]
# 例如
docker save -o mysql-8.tar mysql:8.0
# docker导入文件到镜像
docker load [OPTIONS]
# 例如
docker load -i mysql-8.tar
容器相关
# docker查看所有运行的容器docker ps [-a] # -a -> 查看所有容器,包括未运行的# 新建并运行容器(容器如果已经存在,则使用 docker start 命令启动)
docker run [options] [image]
# options 常用启动选项:
# -d -> 后台运行
# -p 宿主IP:容器IP -> 将容器IP映射到宿主IP
# -v 宿主file/path:容器file/path -> 将容器的file/path挂载到宿主的file/path
# --name [name] -> 为容器命名
# --restart always -> 设置容器随docker一起自动启动
# 删除容器
docker rm [containID/containName] [options]
# options 常用选项:
# -f -> 强制删除容器
# 启动容器/停止容器/重启容器docker start/stop/restart [containID/containName]
# 进入容器
docker exec -it [containID/containName] bash
或
docker exec -it [containID/containName] /bin/bash(如果容器是基于alpine 镜像的 最后的 /bin/bash 需要换成 /bin/sh )
# 执行容器的命令
docker exec -it [containID/containName] [commond]
# 示例,执行 redis-test 容器的 redis-cli 命令
docker exec -it redis-test redis-cli -a "123456"
# 说明: 这句话执行了 redis-test容器的 redis-cli 命令,-a 命令的作用是输入密码
查看容器启动日志
docker logs -f -t --tail=100 [容器]
- 参数说明
- -f:查看实时日志
- -t:查看日志产生的时间
- -tail=100:查看最后的100条日志
- [容器]:容器名称
容器导入到文件,或从文件导入到容器
# docker导出容器到文件
docker export [OPTIONS] CONTAINER
# 例如
docker export -o mysql-8.tar mysql-demo
# docker导入容器生成的文件到镜像
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
# 例如
docker import mysql-8.tar mysql:8.0
查看容器启动参数
需要安装runlike,执行
pip3 install runlike即可
runlike -p <容器名>|<容器ID>
修改容器启动参数
docker update [OPTIONS] [CONTAINER...]
# 例如
docker update --restart=always eureka-server
容器和宿主机文件传输相关
# 从 主机 拷贝到 docker 容器
docker cp [主机文件] [容器]:[容器路径]
# 从 docker容器 拷贝到 主机
docker cp [容器]:[容器路径] [主机文件]