[Linux] - Docker 常用命令

本文详细介绍了如何使用Docker进行容器操作与管理,包括运行、退出、运行Container、镜像导入导出、文件复制、自动启动、挂载数据卷、使用Dockerfile创建镜像等核心功能。
# 运行docker
# -it表示前端运行
docker run -it centos /bin/echo haha

# 后端运行并映射80端口
docker run -dt -p 80:80 --name mycentos my/os
# 端口映射,IP访问限制
docker run -dt -p 127.0.0.1:80:80 --name mycentos my/os

# 不创建Container运行docker
docker run --rm -it centos /bin/echo haha

# 创建Container,起个名字
docker run -it --name testecho centos /bin/echo haha

# 重命名image
docker tag image_name new_image_name

# 运行centos的终端
docker run -it centos /bin/bash

# Container重命名
docker rename nginx nginx_1

#------------------------------------------------------------
# 退出
#------------------------------------------------------------
# 在docker的centos终端退出,此退出会停止Container
exit
# 不停止Container情况下退出方法
快捷键:ctrl + p, ctrl + q

#------------------------------------------------------------
# 运行Container
#------------------------------------------------------------
# 运行已经退出的docker centos终端
docker start 0a2b06b59448
# 运行并附加到container
docker start -i ContainerID

# 停止正在运行的docker centos终端
docker stop 0a2b06b59448

# 附加到docker终端Container,前提是此Container已经运行中
docker attach 3b6165b7504a

# 列出所有的Container
docker ps -a

# 打印docker的运行终端显示
docker logs 81a4f43c74ed

# 删除Container
docker rm 3b6165b7504a

# 删除所有Container
docker rm $(docker ps -a)

# 列出所有镜像
docker images

# 搜索镜像
docker search centos

# 下载镜像
docker pull centos

# 提交镜像
docker commit mycentos my/os:latest

#------------------------------------------------------------
# 镜像导入导出及运行
#------------------------------------------------------------
# 导入容器为镜像文件
docker export 3b6165b7504a > centos.tar

# 导入镜像
cat centos.tar | docker import - test/centos:v1.0

# 运行导入的镜像
docker run -it test/centos:v1.0 /bin/bash

# 删除镜像
docker rmi test/centos:v1.0

# 查看docker的信息,包括安装路径、CPU、内存等
docker info

# Container执行命令,进入容器终端
docker exec -it ContainerID bash
# 进入容器终端
nsenter --mount --uts --ipc --net --pid --target $(docker inspect --format "{{.State.Pid}}" "4cd5af004a52")

# 查看Container的端口映射
docker port ContainerID

#------------------------------------------------------------
# 动态设置运行时的环境变量
# 使用参数--env
# 查看Container的环境变量方法,可以进入Container的bash中运行命令:env
#------------------------------------------------------------
# 查看Container的环境变量
docker exec -it nginx env
# 查看Container的Host文件
docker exec -it nginx cat /etc/hosts
# 设置Container的环境变量
docker run --rm -it --name test --env MYHOME=/home --env TEST=/home --env PATH=$PATH:/home centos bash
# 也可以使用inspect查看Container的环境变量
docker inspect nginx

#------------------------------------------------------------
# 端口映射,IP访问限制
#------------------------------------------------------------
docker run -dt -p 127.0.0.1:90:80 --name jetty img_jetty
docker run -dt -p 127.0.0.1:91:80 --name jetty1 img_jetty
docker run -dt -p 80:80 --name nginx --link jetty:java --link jetty1:java1 img_nginx

#------------------------------------------------------------
# 镜像保存与重加载
#------------------------------------------------------------
# 保存镜像
docker save img_java > img_java.tar
# 重新加载镜像
docker load < img_java.tar
# 查询镜像历史
docker history img_java
# 查看镜像信息Json
docker inspect img_java

#------------------------------------------------------------
# 文件复制
#------------------------------------------------------------
# 从Container复制文件autorun.sh到Host主机的/home目录下
# 也可以是目录复制
docker cp test:/etc/init.d/autorun.sh /home
# 从Host主机复制文件或文件夹到Container主机
# 使用scp命令,如果没有安装scp,使用yum install openssh-clients
# 首先需要使用docker exec进入到Container的终端
scp -rp root@192.168.0.35:/home/jetty8/* /home/

  #------------------------------------------------------------
  # docker容器自动启动
  #------------------------------------------------------------
  docker run --restart=always redis

#------------------------------------------------------------
# 挂载数据卷
# 参数privileged=true:意思给容器添加特权,比如对挂载卷的读写
# 挂载多个数据卷,可以使用多次-v
#------------------------------------------------------------
# 创建数据卷容器,并挂载目录
docker run -it --privileged=true -v /home/jetty8:/home/jetty8 --name jetty centos bash
# 使用数据卷容器创建新的数据卷容器
docker run -it --privileged=true --volumes-from jetty --name os centos bash

#------------------------------------------------------------
# 使用Dockerfile创建镜像
#------------------------------------------------------------
# 注意后面的一点不可少:.
docker build -f dockerfile -t my/centos .

 

转载于:https://www.cnblogs.com/HD/p/4806941.html

根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理和总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),和各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)和任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值