1-3 常用命令
最后更新于:2022-04-02 07:36:54
启动容器
```
# 启动
docker run dinghe/flask-hello
# 设定名字启动
# 后台启动
docker run -d dinghe/flask-hello
# 映射端口
docker run --name ding-flask -p 9501:9501 dinghe/flask-hello
```
备注:启动容器可以限制使用资源,如内存,CPU
```
--cpu-share 3 (相对的,不同容器根据该值进行比例分配)
--memory-swap byts
--memory byts
```
停止启动容器
```
docker stop ding-flask
docker start ding-flask
```
查看image
```shell
docker image ls
```
删除iamge
```shell
docker rmi xxxxxx(container id)
#删除前需停止基于该镜像启动的容器
```
查看当前启动的容器
```shell
docker ps -a
docker container ls
```
删除当前启动的容器
```shell
docker rm xxxxxx(container id)
# 批量删除
docker rm ${docker ps -qa}
docker rm ${docker ps -qa|grep xxx}
```
基于dockerfile编译一个容器
```shell
docker build -t ding/centos-vim .
# . 代表当前目录下的dockerfile
```
查看当前镜像详细内容
```
docker history e0985896a946
```
批量删除容器
```
docker rm $(docker ps -aq)
```
批量删除退出的容器
```
docker rm $(docker ps -f "status=exited" -qa)
```
将容器中的修改更新到镜像中(不推荐,不知道做了什么)
```
docker commit crazy_johnson dinghe/centos-vim
```
推送镜像到docker hub(不推荐)
```
# 先注册登录,注意使用用户名/镜像名称
docker login
docker push dinghe/hello-work
```
使用dockerfile自动进行构建(推荐)
```
# Docker hub -> Create -> create automated build
-> Link Github -> 同步dockerfile -> docker hub自动构建
```
进入容器内部
```
# 这里要区别于启动容器直接进入,这个是容器运行了,想随时进入
docker exec -it 43236b2f5b7e /bin/bash
```
如果容器启动失败,怎么进入
```
1. 修改Dockerfile,去掉最后的启动命令
2. docker run -d --name t1 -it image-t1 /bin/bash
3. docker exec -it xxxx进入后模拟启动
```
查看容器基本信息
```
docker insepct 43236b2f5b7e
```
查看docker运行日志
```
docker logs 43236b2f5b7e
```
备份和恢复镜像
```
docker save -o mysql.tar daocloud.io/mysql
docker load -i mysql.tar
```
#### 资源限制
```
docker run -d --name mysql --memory="500m" --memory-swap="600M" --oom-kill-disabel mysql01
# 限制CPU
docker run -d --name mysql --cpus=".5"
docker run -d --name mysql --cpus="1.5
```
';