docker在线安装
yum install docker
docker离线安装
#下载所需文件
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm
# 安装
rpm -i /path/docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm
rpm -i /path/docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm
# docker启动java程序
#!/bin/bash
# 定义Docker容器名称
container_name="my-java-app"
java_name="a.jar"
# 运行Docker容器,并使用主机网络,添加自动重启参数
docker run -d --name "$container_name" --network host --restart always -v "`pwd`:/" openjdk:8 java -jar "$java_name"
if [ $? -eq 0 ]; then
echo "Docker容器已成功启动,并使用了主机网络,配置了自动重启。"
else
echo "启动Docker容器失败。"
fi
# docker常用操作
#启动 Docker
systemctl start docker
#停止docker
systemctl stop docker
#拉取镜像
docker pull imageId | imageName:tagId
#docker镜像导出 //容器导出镜像也是一样的操作
docker image save imageName:tag| gzip -5 > imageName.tar.gz
或者
docker save -o nextcloud.tar.gz imageName:tag |gzip -5
#docker 镜像导入
docker load -i imageName.tar.gz
#docker 镜像或者容器重新打tag
docker tag imageId/containerId imageName/containerName:tagName
#进入正在运行的docker容器内部
docker exec containerId /bin/bash
#查看docker容器最近100条日志
docker logs -f --tail 100 containerId
#容器保存为镜像
docker commit containername imagename
#跨架构拉取镜像 配置参考https://blog.csdn.net/lhc0602/article/details/116596006
docker image pull containername --platform=arm64
#未完待续
docker部署单机postgresql
#拉取镜像
docker pull postgres:13.3
#创建数据挂载目录
mkdir -p /home/postgresql/data
#启动
docker run -d --name postgresql --restart always -v /home/postgresql/data/:/var/lib/postgresql/data -e POSTGRES_PASSWORD=123456 -p 5432:5432 postgres:13.3
#导出docker镜像至本地文件
docker image save postgres:13.3 | gzip -5 > pgimage.tar.gz
#离线导入镜像
docker load -i pgimage.tar.gz
#重命名镜像
docker tag imageId postgres:13.3
docker部署mariadb
#拉取镜像
docker pull mariadb:10.5.10
#创建数据挂载目录
mkdir -p /home/mariadb/data
#运行
docker run -it --name mariadb -p 3306:3306 -v /home/mariadb/data:/var/lib/mysql -e MARIADB_ROOT_PASSWORD=root mariadb:10.5.10
docker部署redis
#拉取镜像
docker pull redis
#启动,并设置密码
docker run --name redis -d -p 6379:6379 redis --requirepass "Hjdev_2021"
#导出镜像
docker image save 02c | gzip -5 > redis.tar.gz
docker单节点部署es
#--ulimit memlock=-1:-1是为了防止内存不够启动失败
docker run --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms2g -Xmx2g" --ulimit memlock=-1:-1 es:6.24withEsqk=l
docker数据目录迁移
#创建docker数据目录
mkdir -p /data/docker
#停止docker //此步开始影响用户访问平台
systemctl stop docker
#备份配置文件
cp /usr/lib/systemd/system/docker.service /usr/lib/systemd/system/docker.servicebak
#迁移数据文件
rsync -avz /var/lib/docker /data/docker
#修改数据目录配置
vi /usr/lib/systemd/system/docker.service
#在ExecStart里加上--graph=/data/docker
#重新加载配置和启动docker
systemctl daemon-reload
systemctl start docker
#查看docker数据存储目录
docker info | grep "Docker Root Dir"
删除原数据目录
rm -rf /var/lib/docker
#over