docker常用命令整理

文章目录

docker 常用操作命令

一、镜像类操作

1.构建镜像

bash 复制代码
docker build -t xxl-job-admin:1.0 -f /home/xxl-job-admin/Dockerfile  .

-t : 镜像名称和版本

-f : 指定Dockerfile所在路径

2.从容器创建镜像

bash 复制代码
docker commit 容器ID  xxl-job-admin:2.0

3.查看镜像列表

bash 复制代码
docker images

4.删除镜像

bash 复制代码
docker rmi xxl-job-admin:1.0

docker rmi + 镜像名称或者镜像ID就可以删除镜像。

5. 从远程镜像仓库拉取镜像

bash 复制代码
docker pull xxl-job-admin:1.0

6. 将镜像推送到镜像仓库中

bash 复制代码
docker push xxl-job-admin:1.0

7. 将镜像导出

bash 复制代码
docker save -o xxl-job-admin.tar xxl-job-admin:1.0

8. 导入镜像

bash 复制代码
docker load -i xxl-job-admin.tar

9. 登录镜像仓库

bash 复制代码
docker login 仓库地址 -u 用户名 -p 密码

二、容器相关操作

1. 运行容器

bash 复制代码
docker run -d --restart=always --privileges=true --network xxl-job-network --name xxl-job-admin -v /data/logs:/data/logs/xxl-job -p 8080:8080 -e DB_HOST 192.168.0.1 -e DB_PORT 3306 xxl-job-admin:1.0 
  • -d: 以daemon模式后台启动
  • --restart=always: 如果容器退出了自动拉起运行
  • --privileges: 是否以特权模式运行
  • --network: 指定网络
  • --name: 容器名称
  • -v: 目录映射: 宿主机目录:容器内目录,以实现容器数据持久化。
  • -p: 端口映射: 宿主机端口:容器端口
  • -e: 环境变量

2. 进入容器

bash 复制代码
docker exec -it xxl-job-admin bash 

docker exec -it + 容器ID或者容器名称

3. 查看容器的运行状态

bash 复制代码
docker ps -a

4. 查看容器的日志

bash 复制代码
docker logs xxl-job-admin 

5. 查看容器信息

bash 复制代码
docker inspect xxl-job-admin 

6. 停止容器

bash 复制代码
docker stop xxl-job-admin 

7. 删除容器

bash 复制代码
docker rm xxl-job-admin 

8. 启动容器

bash 复制代码
docker start xxl-job-admin 

三、docker 网络操作

1.查看网络列表

bash 复制代码
docker network ls

2.删除网络

bash 复制代码
docker network rm xxl-job-network

3.查看网络详情

bash 复制代码
docker network inspect xxl-job-network

4.创建网络

bash 复制代码
docker network create --driver overlay --attachable --subnet 192.168.2.0/24 --gateway 192.168.2.0 xxl-job-network
  • --driver: 网络类型
  • --attachable: 是否可关联,配置了该参数后,独立容器可以使用该网络。
  • --subnet: 子网区域,配置了子网区段,使用该网络的容器的ip就分布在该网段。
  • --gateway: 网关

5.容器使用指定网络

bash 复制代码
docker network connect xxl-job-network mysql

将mysql容器连接到网络xxl-job-network, 如果mysql是独立容器,在创建xxl-job-network网络时要添加--attachable 参数,否则网络不允许加入。

四、Docker Swarm操作命令

初始化Docker Swarm集群

bash 复制代码
docker swarm init --advertise-addr 192.168.0.122

打印出加入节点的命令

bash 复制代码
docker swarm join-token manager

加入docker swarm集群节点

bash 复制代码
docker swarm join --token SWMTKN-1-asdfasdlsdflasjfielkjfasdjfalsdfjljal;dfkjasdldfja;sdfjk 192.168.0.122:2377

该命令来源于docker swarm init的打印信息,在管理节点上执行了docker init 命令后,会输出一个docker swarm join的命令,如果该命令忘记了,也可以在管理节点上执行docker swarm join-token manager命令,重新打印出该命令。

查看docker swarm节点列表

bash 复制代码
docker node ls

创建服务

bash 复制代码
docker service create --name xxl-job-admin --publish 8080:8080 --network xxl-job-network --replicas 2 --mount type=bind, source=/data/docker/xxl-job-admin/conf,destination=/data/software/xxl-job/conf --mount type=bind, source=/data/docker/xxl-job-admin/log, destination=/data/software/xxl-job/logs -e DB_HOST=192.168.0.110 -e DB_PASSWORD=123456 xxl-job-admin:1.0
  • --name: 服务名称
  • --publish: 端口映射
  • --network: 指定使用的网络
  • --replicas: 副本数量
  • --mount:挂载目录,将宿主机的目录挂载到容器中,source指定宿主机的目录,destination指定的是容器中的目录。
  • -e: 指定环境变量

查看服务列表

bash 复制代码
docker service ls

查看服务状态

bash 复制代码
docker service ps xxl-job-admin

查看服务xxl-job-admin的服务状态

查看服务日志

bash 复制代码
docker service logs xxl-job-admin

删除服务

bash 复制代码
docker service rm xxl-job-admin

停止服务

docker swarm没有停止服务的命令,可以通过将服务的副本数设置为0来停止该服务。

bash 复制代码
docker service scale xxl-job-admin=0

或者采用其他方式如:

bash 复制代码
docker service update --replicas 0 xxl-job-admin

滚动升级

如容器的镜像有变动,需要使用新的镜像进行升级,执行如下命令:

bash 复制代码
docker service update --image xxl-job-admin:2.0 xxl-job-admin

升级xxl-job-admin服务,使用新的镜像xxl-job-admin:2.0。

相关推荐
百流9 分钟前
Pyspark中pyspark.sql.functions常用方法(4)
1024程序员节
qq210846295313 分钟前
【Ubuntu】Ubuntu22双网卡指定网关
1024程序员节
YueTann31 分钟前
APS开源源码解读: 排程工具 optaplanner II
1024程序员节
kinlon.liu39 分钟前
安全日志记录的重要性
服务器·网络·安全·安全架构·1024程序员节
爱编程— 的小李43 分钟前
开关灯问题(c语言)
c语言·算法·1024程序员节
是程序喵呀1 小时前
Uni-App-02
uni-app·vue·1024程序员节
A_aspectJ2 小时前
Spring 框架中都用到了哪些设计模式?
spring·设计模式·1024程序员节
双子座断点2 小时前
QT 机器视觉 (3. 虚拟相机SDK、测试工具)
qt·1024程序员节
20岁30年经验的码农2 小时前
爬虫基础
1024程序员节