vncviewer -> 172.40.50.116:6000 张志刚 2013年  第四阶段  云计算和复习 2018年  第五阶段  python RHCE/RHCA  python

DOCKER 2天 CLOUD 3天 复习6天

运维: 人肉运维: 自动化运维:ansible、shell脚本、python、docker gitlab/svn

docker容器可以认为是直接使用物理硬件的虚拟机 1、准备虚拟机 vh01.tedu.cn 192.168.4.1 systemctl stop firewalld; systemctl disable firewalld

vim /etc/selinux/config

SELINUX=disabled

reboot

配置yum 2、拷贝docker.tar.gz到虚拟机的/root下 3、本地安装 [root@vh01 ~]# tar xzf docker.tar.gz [root@vh01 ~]# cd docker/ [root@vh01 docker]# yum install -y *.rpm

附:互联网安装 http://mirrors.163.com/ -> centos使用帮助 ->点击下载CentOS7的repo配置文件 -> 拷贝到/etc/yum.repos.d下 [root@room8pc16 yum.repos.d]# yum install docker

4、起动服务 [root@vh01 docker]# systemctl start docker [root@vh01 docker]# systemctl enable docker 5、镜像封装了应用,容器相当于是运行中的镜像 6、下载镜像 https://hub.docker.com/ 国外官方站点 http://www.daocloud.io/ 国内刀客站点 7、查看当前主机的镜像列表 [root@vh01 docker]# docker images 8、导入镜像 [root@vh01 docker]# unzip docker_images.zip [root@vh01 docker]# docker load < docker_images/docker_images/nginx.tar 9、起动镜像 [root@vh01 docker]# docker run -p 80:80 nginx [root@room8pc16 pub]# firefox http://192.168.4.1/ & 10、查找与centos7相关的镜像,最好使用星多的、官方的 [root@room8pc16 pub]# docker search centos7 11、下载镜像 [root@room8pc16 pub]# docker pull busybox 12、导入镜像 [root@vh01 docker]# unzip docker_images.zip [root@vh01 docker]# docker load < docker_images/docker_images/nginx.tar [root@vh01 docker_images]# docker load < docker_images/docker_images/centos.tar 13、导出镜像 [root@room8pc16 pub]# docker save busybox > /tmp/busybox.tar

练习: 1、配置物理主机使用网易开源镜像站点作为yum源 http://mirrors.163.com http://mirrors.aliyun.com/ 2、在线安装docker [root@room8pc16 pub]# yum install -y docker 3、起动服务 4、查找busybox [root@room8pc16 pub]# docker search busybox 5、下载busybox [root@room8pc16 pub]# docker pull busybox 6、查看镜像 [root@room8pc16 pub]# docker images 7、导出busybox [root@room8pc16 pub]# docker save busybox > /tmp/busybox.tar 8、将导出的镜像拷贝到虚拟主机,并导入 [root@vh01 docker_images]# docker load < /tmp/busybox.tar

使用docker 1、通过镜像起动容器 [root@vh01 docker_images]# docker run centos echo hello 2、查看运行状态的容器 [root@vh01 docker_images]# docker ps 因为echo hello已经运行结束,所以容器停止了 3、查看所有的容器 [root@vh01 docker_images]# docker ps -a 第一列是容器的id,第二列是容器基于的镜像,第三列是运行的命令,最后一列是容器的名字 4、起动容器,并进入容器操作 [root@vh01 docker_images]# docker run -it centos bash 5、起动容器后,如果想返回宿主机,但是不想停止容器,可以使用组合键ctrl+q+p 6、删除本地镜像 [root@vh01 docker_images]# docker rmi centos 注意:如果有容器正在使用该镜像,则无法删除 7、停止容器 [root@vh01 docker_images]# docker stop e4e<tab> e4e是容器id开头的3个字符 8、删除容器 [root@vh01 docker_images]# docker rm e4e<tab> 9、在容器内,可以像普通的操作系统一样安装软件 [root@vh01 ~]# docker run -it centos bash [root@ef3022e3410c /]# 配置yum,源使用物理主机 [root@ef3022e3410c /]# yum install -y net-tools [root@ef3022e3410c /]# ifconfig 10、镜像重命名,使用tag [root@vh01 ~]# docker tag centos mycentos 完整名称,应该是centos:<tag>,没有指定tag,默认用latest [root@vh01 ~]# docker tag centos centos:ifconfig 生成的新的镜像并不是将原有镜像复制一份,而是两个名字指向同一镜像,可以根据镜像id验证 11、以后台的方式起动容器 [root@vh01 ~]# docker run -idt mycentos bash 12、仅显示容器id [root@vh01 ~]# docker ps -qa 13、批量删除docker容器 [root@vh01 ~]# docker rm $(docker ps -qa) 运行状态的容器不能被删除,如果希望删除需要加-f选项 14、起动、停止、重起容器 [root@vh01 ~]# docker run -idt mycentos bash [root@vh01 ~]# docker stop 75dc<tab> [root@vh01 ~]# docker start 75dc [root@vh01 ~]# docker restart 75dc 15、进入容器 [root@vh01 ~]# docker attach 75dc # exit会结束容器 [root@vh01 ~]# docker exec -it 75dc bash # exit不会结束容器 16、查看容器内进程信息 [root@vh01 ~]# docker top 75dc 17、查看容器底层信息 [root@vh01 ~]# docker inspect 75dc

练习: 1、起动两个容器,基于centos镜像,一个用于安装httpd,另一个用于安装mariadb-server 2、在第一个容器上配置Discuz论坛

步骤: 1、起动容器,为其设置主机名 [root@vh01 ~]# docker run -p 80:80 --name web1 -h web1 -it centos bash [root@vh01 ~]# docker run -p 3306:3306 --name dbserver1 -h dbserver1 -itd centos bash 2、分别连入两个容器,配置yum [root@vh01 ~]# docker attach web1 [root@web1 /]# rm -f /etc/yum.repos.d/* [root@web1 /]# vi /etc/yum.repos.d/server.repo [server] name=server baseurl=ftp://192.168.4.254/rhel7.2 enabled=1 gpgcheck=0 3、在web1上安装httpd/php/php-mysql [root@web1 /]# yum install -y httpd php php-mysql [root@web1 /]# httpd -DFOREGROUND 4、在dbserver1上安装mariadb-server [root@dbserver1 /]# yum install -y mariadb-server [root@dbserver1 /]# mysql_install_db [root@dbserver1 /]# chown -R mysql:mysql /var/lib/mysql/ [root@dbserver1 /]# mysqld_safe 5、在dbserver1上授权 [root@vh01 ~]# docker exec -it dbserver1 bash [root@dbserver1 /]# mysql -uroot MariaDB [(none)]> grant all on . to 'admin'@'%' identified by 'tedu.cn'; 6、把Discuz拷贝到web1中 [root@web1 /]# yum install -y lftp unzip [root@web1 /]# lftp 192.168.4.254 lftp 192.168.4.254:~> cd pub lftp 192.168.4.254:/pub> get Discuz_X3.0_SC_UTF8.zip [root@web1 ~]# unzip Discuz_X3.0_SC_UTF8.zip [root@web1 ~]# cp -r upload/ /var/www/html/bbs [root@web1 ~]# chmod -R 777 /var/www/html/bbs 7、安装Discuz论坛 [root@room8pc16 pub]# firefox http://192.168.4.1/bbs & 数据库连接时,服务器名是dbserver1的ip地址,用户名为admin,密码tedu.cn。

如果以上练习已经做完,导入mysql-server.tar和php.tar镜像。根据这两个镜像起动容器。php镜像已有web服务