初始化安装
# 查看系统版本
cat /etc/redhat-release
# 移除掉原来安装的docker
yum -y remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 卸载
yum remove -y docker-ce docker-ce-cli containerd.io
# 启用仓库的文件
yum-config-manager --enable docker-ce-nightly
# 配置yum aliyun源
## 备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
## 下载
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
## 生成缓存
yum makecache
# 配置centos docker-ce 源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新yum
yum update -y
# 安装依赖软件
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
安装最新版
# 安装docker-ce
yum install -y docker-ce docker-ce-cli containerd.io
为k8s 安装指定版本
https://docs.docker.com/install/linux/docker-ce/centos/#install-from-a-package
# 查看所有版本
yum list docker-ce --showduplicates | sort -r
# 选择 18.06.3.ce-3.el7
yum install -y docker-ce-18.06.3.ce-3.el7 docker-ce-cli-18.06.3.ce-3.el7 containerd.io
# 查看所有版本
yum list docker-ce --showduplicates | sort -r
# 选择 18.06.3.ce-3.el7
yum install -y docker-ce-18.06.3.ce-3.el7 docker-ce-cli-18.06.3.ce-3.el7 containerd.io
验证安装
# 启动docker
systemctl start docker
# 允许开机自启
systemctl enable docker
# 配置镜像源加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://q4jtpmzm.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
# 运行一个demo镜像
docker run hello-world
可能会遇到的问题
网络
# 修改网络配置
vi /etc/sysctl.conf
## 添加如下内容
# net.ipv4.ip_forward=1
# 重启网络
systemctl restart network
数据卷
挂载数据卷需要设置该数据卷的权限(777)
外网访问不了
访问docker需要强制使用-p指令去映射端口,即使内外端口一致
管理docker的工具
docker stack
自带工具
docker compose
管理docker的工具
搭建:
参考文档: https://docs.docker.com/compose/install/
# 下载到指定位置
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 授予可执行权限
sudo chmod +x /usr/local/bin/docker-compose
卸载:
# 删除docker compose二进制文件即可
sudo rm /usr/local/bin/docker-compose
查看版本:
docker-compose -version
# 例如: docker-compose version 1.23.2, build 1110ad01
docker swarm
# 初始化集群
docker swarm init --advertise-addr 192.168.71.220
# 查看加入集群工作节点的指令
docker swarm join-token worker
# 查看docker swarm的信息
docker info
# 退出docker swarm集群
docker swarm leave --force
# 删除docker swarm manager 中列表数据中 已经离开docker swarm的子节点信息
docker node rm --force otutp8noc3dxcgikrnxxw5bm7
portainer
# 数据卷
rm -rf /data/tristan/portainer/*
mkdir -p /data/tristan/portainer
cd /data/tristan
# 管理docker swarm集群
docker service create \
--name portainer \
--publish 9876:9000 \
--constraint 'node.role == manager' \
--mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock \
--mount type=volume,src=portainer,dst=/data \
portainer/portainer \
-H unix:///var/run/docker.sock
# 运行
docker run -d -p 9876:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /data/tristan/portainer:/data portainer/portainer -H unix:///var/run/docker.sock
http://192.168.71.221:9876 admin/portainer
镜像收藏
rabbitmq
参考资料:
https://hub.docker.com/_/rabbitmq
# 拉取镜像
docker pull rabbitmq
# 运行镜像
docker run -d --hostname my-rabbit --name myrabbit -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password rabbitmq:3-management
访问: