两台虚拟机,用第一天使用的模板.运行内存6G,磁盘20G 分别安装docker 并装好yum
上午
[root@room9pc01 ~]# mkdir /var/ftp/public
[root@room9pc01 public]# ls
docker-engine-1.12.1-1.el7.centos.x86_64.rpm docker_images.zip
docker-engine-selinux-1.12.1-1.el7.centos.noarch.rpm
[root@room9pc01 public]# createrepo . #真机操作完毕
虚拟机docker1 docker2 都做如下操作 以docker1为例
[root@docker1 yum.repos.d]# vim docker.repo
[docker]
name=CentOS-Docker
baseurl="ftp://192.168.1.254/public"
enabled=1
gpgcheck=0
[root@docker1 yum.repos.d]# ls
docker.repo local.repo
#注意保持local.repo 和 doker.repo 中的网关相同192.168.1.254 不然报错
[root@docker1 ~]# yum repolist
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
源标识 源名称 状态
docker CentOS-Docker 2
local_repo CentOS-Base 9,591
repolist: 9,593
安装docker软件包
[root@docker1 ~]# yum -y install docker-engine
启动服务
[root@docker1 ~]# systemctl start docker
[root@docker1 ~]# systemctl enable docker
查看网卡
[root@docker1 ~]# ifconfig | head -3
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0
[root@docker1 ~]# docker search busybox #搜索docker列表
[root@docker1 ~]# docker pull busybox #下载busybox
[root@docker1 ~]# docker images #查看
下午
[root@docker1 ~]# docker save busybox:latest > busybox.tar #导出
[root@docker1 ~]# scp busybox.tar 192.168.1.138:/root
[root@docker2 ~]# docker load < busybox.tar #导入
[root@docker2 ~]# docker images
[root@docker1 ~]# unzip docker_images.zip #解包,导入镜像
[root@docker1 ~]# cd docker_images/
[root@docker1 docker_images]# ls
centos.tar nginx.tar redis.tar registry.tar ubuntu.tar
[root@docker1 docker_images]# docker load <centos.tar
[root@docker1 docker_images]# docker load <nginx.tar
[root@docker1 docker_images]# docker load <redis.tar
[root@docker1 docker_images]# docker load <registry.tar
[root@docker1 docker_images]# docker load <ubuntu.tar
[root@docker1 ~]# docker images #查看
创建启动容器的命令
#docker run -it 镜像的名称:镜像的标签 『启动命令』
I 表示交互的 t 表示终端 -d 后台进程
查看容器的详细信息
#docker inspect 镜像的名称:镜像的标签
拓展:
1、容器退出以后,我怎么能在进入原来的容器
容器在退出后就关闭了,如果想要进入原来的容器需要重新启动那个容器
2、为什么有的容器不加启动命令就起不来
因为启动容器的默认命令是非交互式命令
3、启动参数 -it 是干什么的
I 表示交互的 t 表示终端
4、Redis 系统为什么是空的
不是空的,因为你不熟悉
[root@docker1 ~]# docker run -it redis /bin/bash
root@224e24f505e2:/data# ls /
Debian 包管理方式dpkg 安装命令apt-get
Redhat 包管理方式rpm 安装命令yum
5、怎么查看系统中有几个容器
在另一个终端查看
#docker ps 另一个终端打开
6 怎么管理这些容器
用 docker 相关命令
docker run -it 镜像名:标签 命令 (交互)
docker run -d 镜像名:标签 (非交互)
docker run -itd 镜像名:标签 命令 (交互式后台进程)
Docker run -d -p
docker ps 显示运行的容器 -a 显示所有容器 -q 只显示容器 id
docker start|stop|restart 容器id
docker attach 容器id 进入容器 console 终端
docker exec -it 容器id 命令(/bin/bash)
docker inspect 容器id 显示容器详细信息
docker top 容器id 显示容器进程
docker rm 容器id 删除容器
[root@docker1 ~]# docker inspect centos #查看镜像底层信息
[root@docker1 ~]# docker tag busybox:latest aaa:v1 #修改镜像名:标签名
[root@docker1 ~]# docker rmi aaa:v1 #删除指定镜像
Untagged: aaa:v1
容器相关命令
[root@docker1 ~]# docker ps -aq #查看所有容器的ip
[root@docker1 ~]# docker ps -q #查看正在运行容器的ip
[root@docker1 ~]# docker rm -q #删除正在运行的容器 或者指定它的名称
[root@docker1 ~]# docker rm $(docker ps -aq) #删除所有容器进程
[root@docker1 ~]# docker run -itd 进程名 #是和交互和非交互进程
[root@docker1 ~]# docker top 容器id #在不进入容器查看容器进程