记录docker 常用命令

1 docker01
docker 安装

停止禁用防火墙
systemctl stop firewalld
systemctl mask firewalld

禁用 selinux

配置 yum 源,安装 docker
yum install docker-engine

启动测试
systemctl start docker
ifconfig  启动后可以看见 docker0 
docker version

搜索 docker  search
下载 docker  pull  busybox
查看帮助  docker  help  pull
查看镜像  docker  images

导入镜像
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
[root@localhost ~]# docker load <busybox.tar 
c5183829c43c: Loading layer  1.36 MB/1.36 MB
Loaded image: busybox:latest32.77 kB/1.36 MB
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
busybox             latest              f6e427c148a7        3 weeks ago         1.146 MB

导出镜像
docker save busybox >busybox.tar

导入所有文件
unzip docker_img.zip
cd   docker_images
for i in *;do docker load <${i};done

利用镜像启动容器
docker run -it busybox /bin/sh
docker run -it centos /bin/bash

查看容器列表
docker  ps

查看详细信息
docker inspect  21d2aeb977cc
docker inspect -f '{.NetworkSettings.IPAddress}' 21d2aeb977cc

docker 问题列表,及解答
问题:docker run -it  busybox  /bin/bash  报错问题
原因:
最后的命令是容器内部命令,容器内,存在才可以执行
可以不指定,不指定启动默认命令

问题:docker run -it  centos  退出后,配置全部丢失
原因:
run 启动的是新的容器,老的容器退出后就停止了
启动管理一个老的容器可以使用 docker start|stop|restart

问题:老容器启动以后,怎么在进入?
docker  exec -it  容器id  /bin/bash
docker  attach    容器id

exec 与 attach 的区别
exec     单独启动命令运行,与容器启动的终端无关
attach  不启动新的命令,直接连接 console 终端
exec     退出不会影响容器的运行
attach  退出后,容器结束

问题:如果我使用attach 连接容器后,怎么才能不结束容器?
解决方法:把容器放后台,使用快捷键 ctrl + pq

问题:attach 为什么退出后,容器会结束?
因为 attach 连接进容器的 pid 1 的进程,当 attach 结束时候,pid 为 1 的进程被结束
所有整个容器被销毁

问题:docker run -it  nginx  没响应?
因为 nginx 启动的默认 cmd 时 nginx daemon,该进程不是一个交互式的进程

docker run 使用
-i   交互式的
-t   分配终端
-d  把容器放在后台运行

docker  run  -it    centos   cmd   启动一个交互式的容器,在前台运行
docker  run  -d    centos   cmd   启动一个非交互式的容器,在后台运行
docker  run  -itd  centos   cmd   启动一个交互式的容器,在后台运行

测试
docker  run  -it    centos  /bin/bash           成功
docker  run  -d    centos  /bin/bash           失败
docker  run  -itd  centos  /bin/bash           成功

docker  run -it     nginx   nginx                   失败
docker  run -d     nginx   nginx                   失败
docker  run -itd   nginx   nginx                   失败

docker  run -it      nginx   nginx -g "daemon off;"   成功
docker  run -d      nginx   nginx -g "daemon off;"   成功
docker  run -itd    nginx   nginx -g "daemon off;"   成功

交互式的进程启动要使用  it , 非交互式的使用 d ,交互式的放后台使用  itd
启动  bash  的正确姿势  docker run -itd  centos
启动 nginx 的正确姿势  docker run  -d  -p 80:80  nginx


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值