docker是工具,docker使用镜像创建容器,宿主机上可以创建物理隔离的多个容器
docker命令
## 显示运行的容器:
Docker ps | grep xxxx
带-a显示所有的容器
## 进入容器:
docker exec -it b36797e3c9c8 bash
## 重启container:
docker restart container_id
## 停止container:
docker stop container_id
## 获取容器的元数据
dokcer inspect $id| grep Image
## 列出本地镜像
docker images
## 查看docker日志
docker logs 容器ID
## 从容器里面拷文件到宿主机
docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径
docker cp 82c26a81eb87:/opt/maxscale/var/log/maxscale/core/core.1 /tmp
## 从宿主机拷文件到容器里面
docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径
## 查看docker容器的CPU和内存状态
在宿主机上执行
docker stats $容器id
## 删除镜像
docker rmi imge_id
## 删除容器
docker rm container_id
带上-f强制删除
## 修改镜像tag
1. 查看镜像
docker images
2. 改镜像tag
docker tag imageID(镜像id) REPOSITORY:TAG(仓库:新标签)
3. 删除老的标签
docker rmi REPOSITORY:TAG
4. docker push 将镜像推送远程仓库
docker push REPOSITORY:TAG(仓库:新标签)
## 查看实例是不是oom了
1. 在宿主机上,打开/var/log/message, 根据容器id和时间点找到对应的信息
##更新容器信息
docker update
将容器的cpu升级为2核
docker update test2 --cpus 2
将容器内存更新为2G
docker update -m 2048M --memory-swap 1500M 897a6a09807a
##查看Docker显示容器资源使用情况
docker stats container_id
# 打印堆栈
nsenter -t $docker-id -m -p pstack $docker-pid
docker-id: ps -ef|grep mxs_port ,取父进程id。
例: 1000 86356 86100 7 15:03 ? 00:04:31 /opt/maxscale/bin/maxscale
docker-pid: 进入docker, ps -ef|grep mxs_port ,取子进程id。
例:maxscale 23 1 7 15:03 ? 00:04:34 /opt/maxscale/bin/maxscale -f /opt/maxscale/etc/maxscale_41263132_19756854.cnf --port=3420
# docker 仓库没权限修改
sudo docker login -u username dokcer,addres.com
docker build
使用例子:
docker build --network=host --no-cache -t image_name:version_tag -f $tmp/dockerfile $tmp
说明:
-
- $tmp : 是上下文目录
- --network: 网络模式,host:使用主机网络
- -t : 指定镜像名和标签
- -f : 指定打镜像的dockfile文件
- --no-cache : 不使用缓存模式