Docker的搭建及简单运用

Docker的搭建及简单运用

环境准备:
1)停止禁用防火墙
systemctl stop firewalld
systemctl mask firewalld
2)禁用 selinux 
1.配置 yum 源,安装 docker
1 ]# yum -y install docker-engine-*
2.启动测试
1 ]# systemctl start docker
2 ]# systemctl enable docke
3 ifconfig  启动后可以看见 docker0 
4 ]# docker version
5 [root@docker01 ~]# docker search busybox
搜索 ]# docker  search
下载 ]# docker  pull  busybox
查看帮助 ]# docker  help  pull
查看镜像 ]# docker  images
3.导入镜像
1 [root@docker01 ~]# docker images
2 [root@docker01 ~]# docker save busybox >busybox.tar      
3 [root@docker01 ~]# docker load
导出镜像
1 [root@docker01 ~]# docker save busybox >busybox.tar
4.导入所有文件
1 [root@docker01 ~]# unzip docker_img.zip
2 [root@docker01 ~]# cd docker_images/
3 [root@docker01 docker_images]# for i in *; do  docker load < $i; done 
5.利用镜像启动容器  
1 docker run -it busybox /bin/sh
2 docker run -it centos /bin/bash
3 [root@docker01 docker_images]# docker run -it busybox /bin/sh
4 / # 
5 [root@docker01 docker_images]# docker run -it centos /bin/bash
6 [root@256b43a5e7cf /]# 
6.查看容器列表
1 docker  ps
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   启动一个交互式的容器,在后台运行
 
交互式的进程启动要使用  it , 非交互式的使用 d ,交互式的放后台使用  itd
启动  bash  的正确姿势  docker run -itd  centos
启动 nginx 的正确姿势  docker run  -d  -p 80:80  nginx
 
命令列表
 
– docker images //查看镜像列表
1 [root@jacob ~]# docker images 
– docker history //查看镜像制作历叱
1 [root@jacob ~]# docker history centos
– docker inspect //查看镜像底层信息
1 [root@jacob ~]# docker inspect centos
查看详细信息
 
1 docker inspect  21d2aeb977cc
2 docker inspect -f '{.NetworkSettings.IPAddress}' 21d2aeb977cc   //写脚本用到
– docker pull //下载镜像
 
– docker push //上传镜像
 
– docker rmi //删除本地镜像
1 [root@jacob ~]# docker rmi centos
– docker save //镜像另存为tar包
[root@jacob ~]# docker save centos > centos.tar 
– docker load //使用tar包导入镜像
1 [root@jacob ~]# docker load < centos.tar
– docker search //搜索镜像
 
– docker tag //修改镜像名称和标签
1 [root@jacob ~]# docker tag centos:latest test:v1
命令列表
 
– docker run //运行容器
– docker ps //查看容器列表
– docker stop //关闭容器
– docker start //启动容器
– docker restart //重启容器
– docker attach|exec //进入容器
• 进入容器
– docker attach 进入容器,exit会导致容器关闭
– docker exec 进入容器,退出时不会关闭容器
 
– docker inspect //查看容器底层信息
– docker top //查看容器进程列表
 
]# docker top 容器id
– docker rm //删除容器
1 ]# docker stop $(docker  ps  -aq)  
2 ]# docker rm $(docker stop  $(docker  ps  -aq))
3 ]#for i in $(docker  ps -aq)
4 >do
5 >docker stop $(docker  ps  -aq)  
6 >docker rm $(docker ps  -aq)
7 >done
 
1 [root@docker01 ~]# docker run -it centos
2 [root@docker01 ~]# docker exec -it 75feda2410f7  /bin/bash
3 [root@docker01 ~]# docker  attach 75feda2410f7  
4 [root@bbec9c6e4d21 /]#  [root@docker01 ~]#     //退出容器不会宕死的方法Ctrl+p  + q 退出避免的容器宕死。

 

 

posted on 2018-09-06 17:37  清风老道  阅读(230)  评论(0编辑  收藏  举报

导航