安装docker分为在线安装和离线安装;
- 在线安装在有外网的情况下,直接使用命令拉;
- 离线安装就得准备好docker安装包,拖到服务器执行安装命令;
注意:安装docker之前确保服务器上的docker环境是否删除干净,如果未删除干净,做安装操作的时候会报错,安装失败!
接下来就讲一下在线安装docker的步骤;
- 检查docker环境:
docker -v
此时出现docker版本那么就是有docker环境;需要执行删除操作;若未出现docker版本就直接执行安装操作!
- 删除docker:
- 停止docker
systemctl stop docker
- 删除docker文件
apt-get autoremove docker dockerd ctr docker-proxy docker-init containerd containerd-shim runc docker-ce docker-engine docker.io rm -rf /etc/systemd/system/docker.service.d rm -rf /var/lib/docker
- 检查是否删除干净
dpkg -l | grep docker
出现截图这种情况,就是还没有删除干净;
- 继续执行删除操作
apt-get autoremove docker apt-get autoremove docker.io
ok,此时docker全部删除完毕!
- 在线安装docker:
- 拉docker
apt-get install docker.io
- 启动docker
systemctl start docker
- 设置开机自启
systemctl enable docker
- 若不是root用户,将此用户加入到docker组中
sudo usermod -a -G docker ${USER}
- 刷新用户加入到docker组
newgrp docker
ok,docker安装完成!
docker拉取镜像一般我们需要用到的镜像是:mysql、minio、redis、java、rabbitmq、nginx
以上我们提到的镜像都是可以直接使用命令拉取(在有外网的情况下)
- 搜索镜像
docker search [镜像名称]
- 拉取镜像(默认是拉取到最新的镜像):
docker pull [镜像名称]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4lkcfVEI-1655388639574)(C:/Users/Administrator/AppData/Roaming/Typora/typora-user-images/image-20220616202432809.png)]
docker运行容器docker 运行容器有两种方式:
- docker run …
- docker-compose …
这里我将第一种方式:
- 运行nginx:
docker run --restart=always --name [容器名称] -v /e/nginx/conf:/etc/nginx/conf.d -v /e/nginx/html:/usr/share/nginx/html -p [运行端口]:80 -d [镜像id]
- 运行java
docker run -itd --net=host --restart=always -v /data/java_logs:/home/logs -v /data:/data/images --name [容器名称] [镜像id] ./start.sh
- 运行rabbitmq
docker run -itd --net=host --restart=always --name [容器名称] [镜像id]
- 运行mysql
docker run --name [容器名称] --privileged=true --restart=always -v /usr/java/mysql/data:/var/lib/mysql -v /usr/java/mysql/initdb:/docker-entrypoint-initdb.d -p [端口]:3306 -e MYSQL_ROOT_PASSWORD=[密码] -d [镜像id]
- 运行redis
docker run -itd --restart=always --name [容器名称] -p 6379:6379 [镜像id]
- 运行minio
docker run -d -p 9000:9000 --name=minio --restart=always -e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=admin123" -v /data/minio/data:/data -v /data/minio/config:/root/.minio minio/minio server /data --console-address ":9000" --address ":9090"Linux-docker常用命令
- 镜像tar解压
docker load < [tar包] - 修改镜像标签
docker tag [镜像id] [标签名称] - 镜像打包位tar
docker save -o [保存位置] [镜像id] - 容器转镜像
docker commit [容器id] [镜像名称] - 运行容器
docker run ... - 重启容器
docker restart [容器名称] - 停止容器
docker stop [容器名称] - 删除容器(全部)
docker rm -f $(docker ps -aq) - 删除镜像(全部)
docker rmi $(docker images -aq) - 查看镜像
docker images -a - 查看容器
docker ps -a - 将文件拷贝到容器中
docker cp dist/. [容器名称]:/[容器中路径]
docker cp [文件] [容器名称]:/[容器里的路径] - 拷贝脚本到容器中,需要授权及检查脚本的文件格式
chmod 777 [脚本名称]
vim [脚本]
:set ff
set ff=unix - 查看docker日志
docker logs -f [容器名称] --tail 100 - 进入docker容器
docker exec -it [容器名称] bash - jar包自启
nohup java -jar demo-0.0.1-SNAPSHOT.jar >> /home/jar/temp.txt 1>&1 & - 脚本的编写
#!/bin/bash echo "init" sleep 60s java -Xms512m -Xmx2048m -Dfile.encoding=utf-8 -Duser.timezone=GMT+08 -jar /cdzs-simple.jar --spring.config.location=/application.yml echo "init end"
- sql脚本编写
#!/bin/bash # execute sql stat mysql -uroot -pcdzsface123 -e " source cdzsface-cloud-dev.sql;" echo "数据库导入完成" mysql -uroot -pcdzsface123 -e " use mysql; ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'cdzsface123';" echo "修改加密规则完成" exit;
- 运行容器未加开机自启,可以更新
docker update --restart=always [容器id]
- docker日志存放位置:
cd /var/lib/docker/containers/
找到*-json.log,直接移除;
rm -rf *.log
再重启自动创建这个日志文件。



