docker(三)常用命令

一、镜像管理

1、搜索镜像

~]#   docker  search  nginx     #不加版本号默认搜索lates

~]#   docker  search  nginx :1.12    # “:”后面加版本号,搜索指定版本

2、下载镜像

~]#   docker pull centos    #不加版本号默认下载lates

~]#  docker pull nginx:1.12

3、查看本地镜像

~]#  docker images

4、上传镜像

~]#  docker push myweb:v1

查看本地镜像

REPOSITORY    镜像所属的仓库名称
TAG                    镜像的版本号,默认是lates
IMAGE ID           镜像唯一标识ID
CREATED           镜像的创建时间
SIZE                    镜像的大小

4、导出镜像

[root@docker1 ~]#  docker save centos -o /opt/centos.tar.gz      #方法一

[root@docker1 ~]#  docker save centos >  /opt/centos.tar.gz     #方法二

[root@docker1 ~]#  ll /opt/centos.tar.gz     #查看镜像文件是否导出成功

[root@docker1 ~]#  scp /opt/centos.tar.gz root@192.168.235.131:/usr/local/src/     #将该镜像包传另外一台宿主机上,备用于镜像导入

5、导入镜像

[root@docker2  ~]#  docker load -i /usr/local/src/centos.tar.gz         #方法一

[root@docker2  ~]#  docker load > /usr/local/src/centos.tar.gz          #方法二

[root@docker2  ~]#  docker images     #查看本地镜像情况,确认是否导入成功

6、删除镜像

~]#  docker rmi centos

二、容器操作

1、查看容器

~]#   docker ps         #查看正在运行的容器

~]#   docker ps  -a    #查看所有容器,包括已停止的容器

2、创建一个容器

docker  run  [选项参数]  [镜像名称]  [容器中执行的shell命令]

~]# docker run centos /bin/echo 'test'      #创建容器并执行echo  'test',执行完成后退出容器

创建容器(1)

~]#  docker run -it centos bash     #创建容器并进入该容器,退出容器后容器停止运行

注:
-i   标准输入,从中断获取到输入信息;
-t   分配一个tty,连接标准输入的接口;

创建容器(2)

~]#  docker run -d centos tail -f /var/log/anaconda/syslog

注:
-d    放该容器在当前宿主机的后台运行;

创建容器(3)

如果要创建一个可持续运行的容器需在   [容器中执行的shell命令]   执行可以一直执行的shell命令,如:tail -f /var/log/anaconda/syslog,否则当容器执行完该命令后就会退出该容器。

docker run -d --name log_test centos tail -f /var/log/anaconda/syslog

注:
--name     自定义容器名称

创建容器(4)

3、端口映射

3.1、端口映射命令执行如下:

~]#  docker run -d -P nginx     #映射一个随机端口

~]#  docker run -d -p 81:80 nginx     #指定映射端口

~]#  docker run -d -p 192.168.235.131:82:80 nginx     #指定映射端口到某IP

~]#  docker run -d -p 192.168.235.131::80 nginx     #随机映射端口到某IP

~]#  docker run -d -p 192.168.235.131:83:80/udp nginx     #指定协议,不指定默认为TCP

~]#  docker run -d -p 84:80/udp -p 85:80/tcp nginx     #指定多个协议

端口映射(1)

3.2、查看容器已映射的端口

端口映射(2)

4、查看容器的访问日志

~]#  docker logs vigorous_allen      #一次性查看

~]#  docker logs -f vigorous_allen      #追踪查看


容器日志

5、删除容器

~]#  docker rm -fv d33a7f58086f

注:
-f     强制删除
-v    删除容器的同时删除容器相关的文件信息

删除容器

6、单次运行后删除

~]#  docker run -it --rm --name delete_test centos

注:
--rm      退出容器后删除容器

单次运行

7、容器的启动和关闭

~]#  docker stop 4a8485ff1886      #容器关闭

~]#   docker start 4a8485ff1886      #容器启动

容器启动/关闭

8、进入正在运行的容器

8.1、docker  attach命令

使用该命令,需要进入有shell环境的容器,所有操作都是同步的,使用exit退出容器后容器会关闭

~]#  docker run -it centos bash     #创建并进入一个容器

~]#   docker attach cba6c7c67cb6     #从另外一个窗口进入该容器

docker attach

8.2、docker  exec命令

执行单次命令进入容器,exit退出后容器仍运行

~]#   docker exec -it zealous_payne bash

docker exec

8.3、nsenter命令

该命令需要通过PID号进入容器

~]#    docker inspect -f "{{.State.Pid}}" 4a8485ff1886      #获取该容器在宿主机上的PID号

~]#   nsenter -t 3253 -m -u -i -n -p      #通过获取到PID进入容器

注:
-m      进入mount命令空间
-u        进入uts命令空间
-i         进入ipc命令空间
-n        进入net命令空间
-p        进入pid命令空间

nsenter

将nsenter进入容器方式封装成脚本

~]#    vim  nsenter.sh     #将命令封装成脚本
#!/bin/bash
docker_in(){
    DOCKER_NAME=$1
    PID=$(docker inspect -f "{{.State.Pid}}" ${DOCKER_NAME})
    nsenter -t ${PID} -m -u -i -n -p
}
docker_in $1 

~]#   sh nsenter.sh 4a8485ff1886    #测试脚本


nsenter

9、宿主机与容器之间的文件复制

~]#   docker cp 24086923c716:/xiexq_docker_test /opt     #复制容器中的文件到宿主机/opt目录

~]#   docker cp 8888.py test2_nginx:/     #复制宿主机文件到容器的/目录

如在执行docker cp命令过程中出现以下截图报错需要进行docker版本升级

Error response from daemon: error processing tar file: docker-tar: relocation error: /lib/x86_64-linux-gnu/libnss_files.so.2: symbol __libc_readline_unlocked, version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference
: exit status 127

10、查看docker容器消耗宿主机的资源情况

~]#   docker  stats     #执行结果如下图


资源消耗情况

三、其他

1、显示docker的详细信息,包括镜像及容器数

docker  info

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容