1、更换镜像:可以使用阿里云或者腾讯云提供的镜像服务。
docker 帮助命令:
docker version:查看版本
docker info:docker 的详细信息
docker help:帮助命令提示信息
docker镜像命令:
docker images:查看当前docker已经可使用的镜像模板。
参数:-a,查看所有镜像(包含中间镜像层)
-q:只显示镜像id
--digests 显示镜像的摘要信息
--no-trunc 显示完整的镜像信息
docker search 镜像名:到https://hub.docker.com中查找镜像 ;
参数 -s num:查找star点赞数操作num的镜像名。
下载镜像:docker pull 镜像名:版本号 ,版本号缺省,默认下载最新版本
删除镜像:docker rmi 镜像名:版本号 [镜像名:版本号],可删除多个镜像,版本号缺省,默认删除latest,-f强制删除
docker rmi -f $(docker images -qa):删除全部镜像
容器操作操作命令:
新建并启动容器:docker run [options] image [command] [args...]
options说明:
--name="容器新名称":为容器指定一个新名字
-d:后台运行容器,并返回容器ID,也即启动守护式容器
-i:以交互模式运行容器,通常与-t同时使用
-t:为容器重写分配一个伪输入终端,通常与-i同时使用
-P:随机映射端口
-p:指定端口映射,有一下四种格式:
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort
注意:使用守护模式(后台)启动容器,例如docker run -d centos时,会出现问题:
当我们使用docker ps -a进行查看,会发现容器已经退出
很重要的说明一点:docker容器后台运行,就必须有一个前台进程。
容器运行的命令如果不是那些一直挂起的命令(比如top、tail),就是会自动会出的。
这个是docker机制问题,比如web容器,一nginx为例,正常情况下,我们配置启动服务只需要启动响应的server即可,例如server nginx start
但是这样做,ngxin为后台进程运行模式,就导致docker前台没有运行的应用,这样的容器后台启动后,会立即自杀,因为它觉得没有事情可以做了。
所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行
查看当前运行的容器:docker ps [options]
options说明:
-a:列出当前所有正在运行的容器+历史上运行过的
-l:显示最近创建的容器
-n:显示最近n个创建的容器
-q:静默模式,只显示容器编号
--no-tunc:不截断输出
从容器中退出:1)exit(停止容器退出) 2)Ctrl + P + Q(不停止容器,退出,容器的进程还在)
启动容器:docker start 容器名或者容器ID
停止容器:docker stop 容器名或者容器ID
强制停止容器:docker kill 容器名或者容器ID
删除创建的容器:docker rm 容器名或者容器ID; -f:强制删除;
一次性删除多个容器:docker rm -f $(docker ps -q -a)
docker ps -q -a |xargs docker rm
查看容器日志:docker logs -f -t --tail 容器ID
参数:
-f:跟随最新的日志打印
-t:加入时间戳
--tail num:显示最后num条
举例:docker run -d centos /bin/sh -c "while true;do echo hello world;sleep 2;done"//创建一个容器,运行shell脚本,死循环,每隔2秒打印一次hello world
然后用docker logs -f -t --tail 100 容器ID查看打印
查看容器进程:docker top 容器名或者容器ID
看容器的细节:docker inspect 容器名或者容器ID
宿主机与docker容器交互:
1)docker attach 容器名或者容器ID:重新进入后台容器的终端,不会启动新的进程
2)docker exec -it 容器名或者容器ID + bashShell:在容器中执行bashShell命令,返回结果到宿主机终端。exec在容器中打开新的终端,会启动新的进程。docker exec -it 容器名或者容器ID /bin/bash 类似attach,进入就容器终端。
文件拷贝:docker cp 容器名或者容器ID:路径/文件 宿主机路径; 容器和宿主机可以互换,是将前者文件拷贝到后者路径。
原文:https://www.cnblogs.com/flycc/p/12747420.html