安装命令
sudo yum install -y docker-ce docker-ce-cli containerd.io # 安装docker及其组件
yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io-1.4.6 # 以下是在安装k8s的时候使用,暂时不安装
systemctl enable docker --now # 启动docker,并设置开机自启动,首次优先使用该命令
service docker status # 查看状态
service docker start # 启动
service docker stop # 停止
镜像命令
docker images -a 展示镜像
docker search tomcat 查询DockerHub镜像tomcat
docker pull tomcat 下载最新镜像tomcat,等同于docker pull tomcat:latest
docker pull redis:6.2.4 下载指定版本镜像
docker rmi -f tomcat 删除镜像
容器命令
docker run –it --name my-centos centos:7 /bin/bash 以交互方式启动容器(为主):前台启动
docker run -d --name=nginx_zp --restart=always -p 80:80 nginx 以守护进程方式启动容器:运行在后台【为主】【坑:必须显示对外暴露端口80,否则无法访问】
docker ps -a 展示容器
docker stop 3063af3e3f86 停止容器,是优雅地停止容器
docker kill 3063af3e3f86 强制停止容器
docker rm 3063af3e3f86 删除容器,不可以删除正在运行的容器
docker rm -f 3063af3e3f86 删除容器,可以删除正在运行的容器
docker restart 3063af3e3f86 重启容器
docker logs -f 3063af3e3f86 查看容器日志
docker top 3063af3e3f86 查看容器运行的进程
docker attach 3063af3e3f86 直接进入容器
进阶命令
1、进容器内部
docker exec -it 容器id /bin/bash # 在新的容器中打开新的命令终端,可以启动新的进程
2、启动容器时挂载数据到外部空间,一般挂载配置文件、data数据,因为docker内部该文件内容极不方便!!!没有vim
docker run --name=mynginx \
-d --restart=always \
-p 88:80 \
-v /data/html:/usr/share/nginx/html:ro \
nginx:latest
# 修改页面只需要去宿主机的 /data/html
3、镜像分享方案一
docker save -o nginx_zp.tar nginx # 将镜像保存成压缩包
docker load -i nginx_zp.tar # 别的机器将压缩包加载为镜像
4、镜像分享方案二
docker commit -m "首页变化" 341d81f7504f guignginx:v1.0 # 将自己修改好的镜像提交
在docker hub 注册仓库
docker tag guignginx:v1.0 leifengyang/guignginx:v1.0 # 把旧镜像的名字,改成仓库要求的新版名字
docker login # 登录到docker hub
docker push leifengyang/guignginx:v1.0 # 推送
docker logout # 推送完成镜像后退出
docker pull leifengyang/guignginx:v1.0 # 别的机器下载
5、查看容器运行情况
docker top 容器名称或容器id # 查看容器内运行的进程
docker inspect 容器名称或容器id # 查看容器内部细节
docker attach 容器名称或容器id # 进入正在运行的容器并以命令行交互, 不会启动新的进程
6、将主机文件拷贝到容器
docker cp HelloWorld.java your_container_id:/tmp/
防火墙相关命令
sudo firewall-cmd --list-all --zone=public # 查看防火墙对外提供访问的接口
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent # 开放TCP端口80(HTTP)
sudo firewall-cmd --zone=public --remove-port=80/tcp --permanent # 关闭TCP端口80(HTTP
sudo firewall-cmd --permanent --query-port=80/tcp # 查看端口是否开启
service firewalld status
service firewalld stop
service firewalld start
service firewalld restart
docker实战命令汇总
于 2024-03-04 09:16:29 首次发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)