docker指令总结

docker-compose up -d
用于部署一个 Compose 应用。

docker-compose stop
停止 Compose 应用相关的所有容器,但不会删除它们。
被停止的应用可以很容易地通过 docker-compose restart 命令重新启动。

docker-compose rm
用于删除已停止的 Compose 应用。
它会删除容器和网络,但是不会删除卷和镜像。

docker-compose restart
重启已停止的 Compose 应用。
如果用户在停止该应用后对其进行了变更,那么变更的内容不会反映在重启后的应用中,这时需要重新部署应用使变更生效。

docker-compose ps
用于列出 Compose 应用中的各个容器。
输出内容包括当前状态、容器运行的命令以及网络端口。

docker-compose down
停止并删除运行中的 Compose 应用。
它会删除容器和网络,但是不会删除卷和镜像。

docker exec -it  CONTAINER_ID  bash 
进入容器终端并且保留为容器终端的输入形式(-it和bash的结合作用)

docker-compose up 本质是docker-compose logs -f,它会收集所有容器的日志输出直到退出docker-compose up命令,或者容器都停止运行,比如创建容器时失败,会退出当前命令行
docker-compose up -d 以后台的方式运行容器。不会在终端上打印运行日志

tail -f 实时查看日志文件

nvidia-docker version
搜索镜像:docker search
获取镜像: docker pull
查看镜像:docker images
删除镜像:docker rmi

重启docker:systemctl start docker
查看docker版本:docker -v
随机启动nginx 容器 随机端口 docker run -d -p 80:80 --name mynginx nginx -d表示后台运行 --name 别名

查看容器启动情况: docker ps
进入容器:docker exec -it id /bin/bash
查看日志情况:docker logs Name/ID
查看最近20行日志:docker logs -f --tail -20 id

显示一个运行的容器里面的进程信息:docker top id
停止容器:docker stop id
启动容器:docker start id
查看容器启动情况:docker ps
查询所有容器:docker ps -a

强制停止容器:docker kill id
删除容器:docker rm id
强制删除容器:docker rm -f id

查看容器日志:docker logs id
首先docker images 查看容器名称和别名
批量停止容器:docker rm -f $(docker ps -aq)
docker run -d -p 81:80 --name myngin1 nginx

查看docker的硬盘空间使用情况:docker system df

容器导出导入
mkdir ubuntu-t  #创建文件夹
cd ubuntu-t  # 进入文件夹
sudo docker export id > ubuntu.tar #导出
ls  # 显示ubuntu.tar 导出成功
cat /ubuntu.tar | sudo docker import - test/ubuntu:v1
sudo docker images #查看镜像是否导入成功
sudo docker ps -a #查询所有镜像
sudo docker rm -f id # 删除镜像


sudo docker pull training/webapp #拉镜像
sudo docker run -d -P training/webapp python app.py #运行镜像 大写的P
sudo docker ps
sudo docker run -d -p 5000:5000 training/webapp python app.py# 更改端口号  内部5000转本地5000 小写的p
sudo docker port id #
sudo docker logs -f id #运行日志查询
sudo docker top id #查询当前进程
sudo docker inspect id #查询配置与状态信息
sudo docker stop id #停止

sudo docker images # 镜像
sudo docker search httpd#查找镜像
sudo docker pull httpd# 拉镜像
sudo docker images
sudo docker rmi httpd#删除镜像
sudo docker ps #找容器
sudo docker commit -m="update" -a="fu" bf25 ubuntu-fu:v2  #创建镜像 
sudo docker images
mkdir Dockerfile  # 创建镜像的另一种方法
cd Dockerfile
gedit Dockerfile
    from ubuntu:18.04 
    run apt-get update
sudo docker build -t fu/ubuntu .#运行
---------------------------------------------------------------------------------------------------------------------------------
-d 后台运行

-v 绑定一个数据卷

-p 指定要映射的IP和端口,但是在一个指定端口上只可以绑定一个容器. 支持的格式有 hostPort:containerPort、ip:hostPort:containerPort、 ip::containerPort

-P Docker会随机映射一个 49000~49900 的端口到内部容器开放的网络端口.

举例:docker run  -v /usr/ToolsAPIDir:/ToolsAPIDir1 -d -p 5005:5004 -it toolsapi:v8 python3 tools_api.py
-v 本地目录:容器目录,挂载主机的本地目录 /usr/ToolsAPIDir 目录到容器的/ToolsAPIDir1 目录,本地目录的路径必须是绝对路径
-d 后台运行容器
-p 5005:5004指定主机的5005端口映射到容器的5004端口
-it  toolsapi:v8 以交互模式运行 toolsapi:v8启动的容器
python3 tools_api.py 启动api.py文件,这样可以不需要再Dockfile中指定 CMD命令,或者覆盖Dockfile中的CMD命令

---------------------------------------------------------------------------------------------------------------------------------
1.代码上传(映射)
2.创建容器  docker runtime=nivida -v 本地路径:容器路径

-d 后台运行
-v 绑定一个数据卷
-p 指定要映射的IP和端口,但是在一个指定端口上只可以绑定一个容器. 支持的格式有 hostPort:containerPort、ip:hostPort:containerPort、 ip::containerPort
-P Docker会随机映射一个 49000~49900 的端口到内部容器开放的网络端口.

docker runtime=nvidia -it --name lxj_ner -v /test/lxj_model/BERT-BiLSTM-CRF-NER-master-new:/work votiethuy/tensorflow1.12-gpu-base

docker runtime=nvidia -it --name lxj_ner -v 服务器代码绝对路径:/work image名字:版本号

docker run -it --name lxj_ner -v /data1/home/lixiaojian/test/lxj_model/bert-bilstm-crf-ner-master-new:/work votiethuy/tensorflow1.12-gpu-base:latest bash

docker run -it -d --gpus all --restart=always -v /data1/home/gaorong/lxj_test/AIS:/work gw000/keras-full:latest bash   #25号机这也启动容器才可以用gpu

docker run -it -p 8000:80  镜像名  将本地8000端口指定到容器的80端口
---------------------------------------------------------------------------------------------------------------------------------
build_base.sh
# --no-cache
docker build  -t "text_classification:1.0" -f base/Dockerfile . 根据base中的Dockerfile创建得到的第一版镜像

build.sh
docker build -t "text_classification:1.0" . 每次更新迭代完后运行sh得到更新后的镜像


以下命令不用运行build命令,可以直接创建镜像
sh build_base.sh
sh build.sh
---------------------------------------------------------------------------------------------------------------------------------
###将docker容器保存为 tar 包###

1、docker commit <容器id> <镜像名>:<tag>     ---- 将容器保存成镜像
 
保存后 docker images 便可以看到镜像
 
2、docker save -o <tar包名>.tar <镜像名>:<tag>      ---- 将镜像保存为.tar文件,默认保存在当前目录
---------------------------------------------------------------------------------------------------------------------------------
###从 tar 包导入docker镜像###

1、docker load -i <tar包名>.tar     ---- 从 tar 包导入镜像
 
导入镜像后,通过 docker images 便可看到导入的镜像。
 
2、docker run -itd -p <本地端口>:<容器端口> <镜像名>:<tag>    ---- 通过镜像起容器
---------------------------------------------------------------------------------------------------------------------------------
###案例###
1、docker commit 294oajfhfnci abcdef:latest   ---- 将294oajfhfnci容器保存为镜像abcdef
 
2、docker save -o abcdef.tar abcdef:latest    ---- 将镜像abcdef保存为abcdef.tar
 
3、docker load -i abcdef.tar                  ---- 从 abcdef.tar 导入镜像
 
4、docker run -itd -p 8888:80 --restart=always abcdef:latest      ---- 通过abcdef镜像启动容器
---------------------------------------------------------------------------------------------------------------------------------
###服务部署流程###
准备工作:两个文件夹:images、docker-compose
其中images里是一堆服务需要的镜像的tar文件,docker-compose里主要用到的是docker-compose.yml文件,当然也有一些其它文件

具体步骤:
1、进入images文件对需要的镜像一个一个进行docker load -i 镜像名
2、进入docker-compose文件夹打开docker-compose.yml文件,进行相应修改,例如:修改镜像版本号、替换原有数据接口地址为现在的地址,添加挂载路径等等
3、docker-compose up -d 构建服务镜像  ***这里注意:docker-compose restart是重启服务,docker-compose up -d是构建,如果对yml文件或者其它进行修改,最好是up -d重构,因为重启不会更新更改内容。
4、可以按照README文件的指示进行操作

ps:新知识---假设kkk.sh文件里的内容是docker exec -it python work/src/xxx/manage.py  当sh kkk.sh时,执行的就是前面的指令,意思是进入容器然后用python执行manage.py文件,这样的好处是可以不用进入容器就执行python脚本
      ---docker cp /usr/local/ship_list.json situation-server:/tmp  意思是将宿主机/usr/local/路径下的ship_list.json复制到situation-server容器内的tmp文件下
      ---docker cp situation-server:/tmp/ship_list.json /usr/local 也可以反过来,将situation-server容器内tmp路径下的ship_list.json复制到宿主机/usr/local路径下

docker inspect 镜像id 查看镜像架构
docker images | grep xxx 筛选查看

 Shift+g  vim跳转最后一行
Linux环境下Python无法import自定义模块
vi /etc/profile 在最后一行添加export PYTHONPATH=$PYTHONPATH:/root/sw/


多行插入同样内容:ctrl + v 、上下选中  、shift i 、输入要添加的内容 、ESC
快速删除:esc状态下,dd删除整行
复制粘贴:光标移至起始点,n+yy 其中n为复制几行,p粘贴
撤回:u


cat /etc/issue   看镜像是Ubuntu还是debian


###给只读文件添加写入权限###
ls -l命令来看看文件及目录的相关信息 
chmod u+w filename  对文件创建者赋予写入权限

### Docker 常用命令汇总 以下是基于提供的参考资料整理的完整的 Docker 常用命令列表: #### 1. 镜像操作 - **构建镜像**: 使用 `docker build` 构建一个新的镜像。 ```bash docker build -t my-image . ``` - **拉取镜像**: 下载远程仓库中的镜像到本地。 ```bash docker pull ubuntu:latest ``` - **推送镜像**: 将本地镜像推送到远程仓库。 ```bash docker push my-repo/my-image:tag ``` - **查看镜像列表**: 列出当前系统中存在的所有镜像。 ```bash docker images ``` - **删除镜像**: 删除指定的镜像。 ```bash docker rmi <image-id> ``` #### 2. 容器操作 - **运行容器**: 启动一个新的容器实例并执行指定命令。 ```bash docker run -d --name=my-container nginx ``` - **进入正在运行的容器**: 进入已启动的容器内部终端环境。 ```bash docker exec -it <container-id> /bin/bash ``` - **停止容器**: 停止一个正在运行的容器。 ```bash docker stop <container-id> ``` - **强制删除容器**: 即使容器处于运行状态也可以立即删除它。 ```bash docker container rm -f <container-id> [^4] ``` - **重启容器**: 重新启动已经存在的容器。 ```bash docker restart <container-id> ``` - **查看容器日志**: 查看某个容器的日志输出。 ```bash docker logs <container-id> ``` #### 3. 数据卷管理 - **创建数据卷**: 创建一个新的数据卷用于持久化存储。 ```bash docker volume create my-volume ``` - **列出数据卷**: 显示当前所有的数据卷名称及其路径信息。 ```bash docker volume ls ``` - **移除未使用的数据卷**: 清理掉那些不再被任何容器关联的数据卷。 ```bash docker volume prune ``` - **删除特定数据卷**: 手动清除某几个具体命名好的数据卷对象。 ```bash docker volume rm my-volume [^4] ``` #### 4. 网络配置 - **创建自定义网络**: 设置专用子网供多个服务间通信使用。 ```bash docker network create my-network ``` - **连接至现有网络**: 把已有容器加入新的或者现有的虚拟局域网当中去。 ```bash docker network connect my-network some-container ``` - **断开网络链接**: 让某些容器退出其所属的一个或更多个独立网络结构之外。 ```bash docker network disconnect my-network another-container ``` #### 5. 导入导出功能 - **保存镜像为 tar 文件**: 备份整个镜像以便迁移传输给其他机器上恢复利用起来。 ```bash docker save -o container.tar <image-name>:<tag> ``` - **加载 tar 文件还原镜像**: 当前环境中导入之前备份下来的压缩包形式的镜像档案回来继续工作。 ```bash docker load -i container.tar [^3] ``` #### 6. 其他辅助工具类别的实用技巧集合 - **统计资源占用情况**: 获取关于 CPU、内存等方面的具体数值报告出来便于监控分析性能瓶颈所在位置在哪里等问题解决办法探讨研究方向等等相关内容学习交流分享经验总结提升自我成长进步空间无限广阔未来可期共同努力奋斗成就辉煌明天梦想成真指日可待加油吧少年们!!! ```bash docker stats ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值