centos docker安装
- 系统版本:cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
- 安装需要的软件包
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
安装成功结果
image.png
- 配置源地址
sudo yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
执行结果
image.png
- 安装 Docker Engine-Community (选择特定版本进行安装)
# 查看docker可安装版本
yum list docker-ce --showduplicates | sort -r
- 选择版本进行安装
#其中 3:20.10.0-3.el7 为上个步骤查出来的版本列表
sudo yum install docker-ce-3:20.10.0-3.el7 docker-ce-cli-3:20.10.0-3.el7 containerd.io
- 启动docker
sudo systemctl start docker
- 查看docker版本
docker --version
docker开通远程api端口
详细参考 : https://www.jianshu.com/p/4f49c5b40d15
ubuntu docker 安装 (版本信息: Ubuntu 22.04 LTS)
- 更新 apt
# 挨个执行安装
# update 命令只会获得系统上所有包的最新信息,并不会下载或者安装任何一个包
sudo apt update
# 更新已安装软件包的命令
sudo apt upgrade
sudo apt full-upgrade
- 添加Docker库
# 安装必要的证书
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 添加docker官方库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#更新源列表 ,如果出现 ' E: Method https has died unexpectedly!' 问题,参考下面 ' ubuntu添加存储库执行 apt update 异常'
sudo apt update
上面两个步骤,“添加Docker官方GPG密钥”、“添加docker官方库” 如果出现443等连接超时问题,找下文“问题 - docker相关文件下载超时” 进行配置解决
- 安装Docker
#安装 Docker CE
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
#查看docker版本
apt-cache madison docker-ce
#选择上述列表中任意版本安装
sudo apt install docker-ce=5:20.10.16~3-0~ubuntu-jammy docker-ce-cli=5:20.10.16~3-0~ubuntu-jammy containerd.io
- 检验是否安装成功
# 查看docker安装状态
systemctl status docker
# 查看docker 容器进程
docker ps -a
- 修改 Docker APT源
如果碰到连接 download.docker.com错误,错误信息如下
Could not connect to download.docker.com:443 (13.224.163.26),
connection timed out Could not connect to download.docker.com:443 (13.224.163.81),
connection timed out Could not connect to download.docker.com:443 (13.224.163.23),
可以修改 docker 源,源信息
# 阿里源
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- 安装docker-compose
sudo apt install docker-compose
常规使用方法
- 查看docker公共镜像版本网站:https://hub.docker.com/
- 拉取镜像
# docker pull 容器名:版本号
docker pull redis:6.0.20
如果出现 “error pulling image configuration: download failed after attempts=6: dial tcp 185.45.7.189:443: i/o timeout” 问题,是因为国内主流的镜像源都不能使用了,可以通过以下步骤,快速的搭建自己的镜像源
- 注册 Cloudflare 账号,地址:https://dash.cloudflare.com/
- 注册成功后,进入首页,找到 Workers & Pages , 点击 pages绑定github账号
- fork CF-Workers-docker.io 项目到自己的github账户(刚刚绑定的账号)
- 刷新2中的页面,选择3中fork的项目,按步骤设置,无需做其他配置变更
- 配置成功后的界面如下,标注地方即新的镜像地址,配置成功等几分钟后即生效,将地址配置进docker镜像,即可使用
- vim /etc/docker/daemon.json 进行编辑,格式如下
{
"registry-mirrors": ["你的镜像地址"]
}systemctl daemon-reload && systemctl restart docker
image.png
- 常规安装 -- redis
# 创建需要挂载的文件目录
# 创建本地目录
mkdir -pv /opt/db_data/redis/data
# 创建容器
# 参数说明 -d 后台运行,运行成功返回ID ; -p 端口号映射 ; --restart always docker重启时该容器会重启; -v 挂载目录,宿主机目录:容器安装成功后内部目录; --requirepass redis参数,redis的密码
docker run -d -p 6379:6379 --name redis --restart always -v /opt/db_data/redis/data/:/data redis:6.0.20 --requirepass eb887f0a2794
- 常规安装 -- mysql
# 创建目录
mkdir -p ~/data/var/data/mysql8/db
# 创建容器
docker run \
--restart always \
--name=mysql8.0.20 \
-e MYSQL_ROOT_PASSWORD=mypassword \
-v ~/data/var/data/mysql8/db:/var/lib/mysql \
-p 3306:3306 \
-d mysql:8.0.20 --default-authentication-plugin=mysql_native_password --character-set-server=UTF8MB4
- 常规安装 -- nginx
# 创建目录,用于挂载
mkdir -pv /opt/nginx/logs
mkdir -pv /opt/nginx/html
mkdir -pv /opt/nginx/logs
mkdir -pv /var/www/html
# 创建容器
# 1 :--privileged=true 表示以root权限,读取宿主机的挂载目录
# 2 :/var/www/html 作为前端项目访问根目录
docker run -d \
--restart always \
--name nginx-train36 -p 8097:8097 \
-v /opt/nginx-train36/nginx.conf:/etc/nginx/nginx.conf \
-v /opt/nginx-train36/conf.d:/etc/nginx/conf.d \
-v /opt/nginx-train36/logs:/var/log/nginx \
-v /opt/nginx-train36/html:/usr/share/nginx/html \
-v /var/www/html:/var/www/html \
--privileged=true nginx
- 常规安装 -- postgre
# 1下载镜像
docker pull postgres:12.10
# 2 创建挂载目录
mkdir -pv /opt/volume/postgre_data
# 3 创建容器
docker run -it -d --name postgresql \
-v /opt/volume/postgre_data:/var/lib/postgresql/data \
-p 5432:5432 -e POSTGRES_PASSWORD=我的密码 postgres:12.10
# 4 连接
账号 postgres 密码 我的密码
- 关于网络
# 查看docker网络
docker network ls
# 查看某个网络容器情况
docker network inspect bridge
问题
- docker相关文件下载超时
执行 “ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg” 报错:
curl: (28) Failed to connect to download.docker.com port 443 after 131114 ms: Connection timed out
gpg: no valid OpenPGP data found.
用以下方法更换源
sudo curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- ubuntu添加存储库执行 apt update 异常 (Method https has died unexpectedly!)
添加“echo "deb [arch=(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null” 报错如下
image.png
解决办法
#临时
sudo GNUTLS_CPUID_OVERRIDE=0x1 apt-get update
#永久
# 将 GNUTLS_CPUID_OVERRIDE=0x1 添加到环境变量中
vim /etc/environment
# 环境变量生效
source /etc/profile