1、先下载安装包并上传到服务器, 这里下载的是20.10.7版本,并上传到 /root/docker目录
下载地址:https://download.docker.com/linux/static/stable/x86_64/
2、新建安装命令文件和卸载命令文件
2.1安装命令文件 install.sh
#!/bin/sh
echo '解压tar包...'
tar -xvf $1
echo '将docker目录移到/usr/bin目录下...'
cp docker/* /usr/bin/
echo '将docker.service 移到/etc/systemd/system/ 目录...'
cp docker.service /etc/systemd/system/
echo '添加文件权限...'
chmod +x /etc/systemd/system/docker.service
echo '重新加载配置文件...'
systemctl daemon-reload
echo '启动docker...'
systemctl start docker
echo '设置开机自启...'
systemctl enable docker.service
echo 'docker安装成功...'
docker -v
2.2卸载命令文件 uninstall.sh**
#!/bin/sh
echo '删除docker.service...'
rm -f /etc/systemd/system/docker.service
echo '删除docker文件...'
rm -rf /usr/bin/docker*
echo '重新加载配置文件'
systemctl daemon-reload
echo '卸载成功...'
3、新建docker.service 文件
docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
4、给命令文件赋执行权限
chmod +x install.sh
chmod +x uninstall.sh
5、执行安装命令进行安装
./install.sh docker-20.10.7.tgz
执行完之后如果成功输出docker版本信息,则安装成功
6、卸载docker
./uninstall.sh
7、docker常用命令
7.1、docker 基础命令
启动docker
systemctl start docker
停止docker
systemctl stop docker
重启docker
systemctl restart docker
docker设置随服务启动而自启动
systemctl enable docker
查看docker 运行状态
------如果是在运行中 输入命令后 会看到绿色的active
systemctl status docker
docker版本信息
docker veriosn
docker -v
docker info
docker 帮助命令
docker --help
7.2、docker 镜像命令
查看镜像列表
docker images
搜索镜像
docker search 镜像名称
拉取镜像
不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本
docker hub地址
可在经常仓库查看具体拉取命令
docker pull 镜像名
docker pull 镜像名:tag
镜像运行 --拉取一个tomcat运行
docker run -d -p 8081:8080 --name tomcat001 镜像名
docker run -d -p 8081:8080 --name tomcat001 镜像名:tag
EX
docker pull tomcat
docker run tomcat
删除镜像
#删除一个
docker rmi -f 镜像名/镜像ID
#删除多个,用空隔隔开即可
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID
#删除全部镜像 -a 意思为显示全部, -q 意思为只显示ID
docker rmi -f $(docker images -aq)
#强制删除镜像
docker images rm 镜像名/镜像ID
保存镜像
##将我们的镜像 保存为tar 压缩文件 这样方便镜像转移和保存 ,然后 可以在任何一台安装了docker的服务器上 加载这个镜像
docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字
加载镜像
docker load -i 镜像保存文件位置
如: docker load -i myimg.tar
7.3 容器命令
查看正在运行的容器列表
docker ps
查看所有容器列表
docker ps -a
运行一个容器
docker run -itd --name 容器名称 -p 8081:8080 镜像名称:tag / 镜像ID
-p 宿主机端口:容器端口,外部需要访问8081才行
–name 为容器指定别名
-d 容器后台运行,否则Ctrl+c或关闭窗口会导致容器退出
-it:指以交互形式启动
停止容器
docker stop 容器ID/容器名
删除容器
docker rm -f 容器ID/容器名
docker rm -f 容器ID/容器名 容器ID/容器名 容器ID/容器名 容器ID/容器名 ##删除多个容器
docker rm -f $(docker ps -aq) 删除全部容器
启动容器
docker start 容器ID/容器名
重启容器
docker restart 容器ID/容器
查看容器日志
docker logs -f --tail=要查看末尾多少行 默认all 容器ID
容器设置跟随docker自启动
docker run -itd --name redis001 -p 8088:6379 --restart=always 容器名:tag/容器ID
docker run -d -p 8081:6379 --name redis505 --restart=always -v /var/lib/redis/data/:/data -v /var/lib/redis/conf/:/usr/local/etc/redis/redis.conf redis:latest --requirepass “password”
提交镜像
有时候需要在基础镜像上做修改,然后保存为新的镜像
docker commit -m=“提交信息” -a="作者信息“ 容器名/容器ID 提交后的镜像名:tag
例如:
先拉取一个tomcat镜像,然后启动容器并访问8080,如下图:
docker pull tomcat
docker run -d -p 8080:8080 --name tomcat tomcat:latest
这是因为拉取的tomcat基础镜像,webapps目录下是空的,可进入tomcat容器内查看
把 webapps.dist 下的文件拷贝到 webapps下,然后提交打包成新镜像
cp -r webapps.dist/* webapps
exit ##退出容器
docker commit -m=“打包镜像” -a=“feifei” 2616dd329656 tomcat:1.0
docker images
停止之前启动的tomcat容器并删除
docker stop 容器ID
docker rm -f 容器ID
启动新打包的镜像
docker run -d -p 8081:8080 --name tomcat001 tomcat:1.0
7.4运维命令
查看docker工作目录
sudo docker info | grep “Docker Root Dir”
查看docker磁盘占用总体情况
du -hs /var/lib/docker/
查看Docker的磁盘使用具体情况
docker system df
删除 无用的容器和 镜像
##删除异常停止的容器
docker rmdocker ps -a | grep Exited | awk '{print $1}'
##删除名称或标签为none的镜像
docker rmi -fdocker images | grep '<none>' | awk '{print $3}'
清除所有无容器使用的镜像
注意,此命令只要是镜像无容器使用(容器正常运行)都会被删除,包括容器临时停止
cker system prune -a
查找大文件
find / -type f -size +100M -print0 | xargs -0 du -h | sort -nr
查找指定docker使用目录下大于指定大小文件
find / -type f -size +100M -print0 | xargs -0 du -h | sort -nr |grep '/var/lib/docker/overlay2/’
ex:我这里是查找 /var/lib/docker/overlay2/ 开头的且大于100m的文件
docker安装以及相关命令介绍就写到这了
[参考链接] https://blog.csdn.net/leilei1366615/article/details/106267225