文章目录
- [docker 常用操作命令](#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。