作业九

一、通过 RPM 安装 docker 17.03.0 版本并且配置 docker 阿里加速

#下载docker 17.03.0 版本的rpm包

[root@CentOS8 ~]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-17.03.0.ce-1.el7.centos.x86_64.rpm

#使用rpm安装docker 17.03.0包

[root@CentOS8 ~]# rpm --force --nodeps -ivh docker-ce-17.03.0.ce-1.el7.centos.x86_64.rpm

#配置阿里加速

[root@CentOS8 ~]# tee /etc/docker/daemon.json <<-'EOF'

> {

>   "registry-mirrors": ["https://aabbccdd.mirror.aliyuncs.com"]

> }

> EOF

{

  "registry-mirrors": ["https://aabbccdd.mirror.aliyuncs.com"]

}

[root@CentOS8 ~]# ll /etc/docker/daemon.json

-rw-r--r-- 1 root root 67 Nov 16 18:26 /etc/docker/daemon.json

#启动docker

[root@CentOS8 ~]# systemctl daemon-reload

[root@CentOS8 ~]# systemctl start docker

[root@CentOS8 ~]# docker version

Client:

 Version:      17.03.0-ce

 API version:  1.26

 Go version:   go1.7.5

 Git commit:   3a232c8

 Built:        Tue Feb 28 08:10:07 2017

 OS/Arch:      linux/amd64

 

Server:

 Version:      17.03.0-ce

 API version:  1.26 (minimum version 1.12)

 Go version:   go1.7.5

 Git commit:   3a232c8

 Built:        Tue Feb 28 08:10:07 2017

 OS/Arch:      linux/amd64

 Experimental: false

 

二、通过 docker 安装一个 LAPM 架构

#从hub上拉取centos:8.2.2004的镜像

[root@Ubuntu1804 ~]# docker pull centos:8.2.2004

#启动centos:8.2.2004的容器,命名lamp

[root@Ubuntu1804 ~]# docker run -itd --name lamp -p 80:80 --privileged centos:8.2.2004 /usr/sbin/init

#注意:在启动容器时要加--privileged,并运行/usr/sbin/init否则在启动服务时会有如下提示:

System has not been booted with systemd as init system (PID 1). Can't operate.

Failed to connect to bus: Host is down

 

#进入lamp容器

[root@Ubuntu1804 ~]# docker exec -it lamp /bin/bash

#清空repo源

[root@d1a9820797a8 /]# rm -f /etc/yum.repos.d/*.repo

#手动拷贝国内repo源到容器

[root@Ubuntu1804 ~]# docker cp base.repo lamp:/etc/yum.repos.d/

[root@d1a9820797a8 /]# ls /etc/yum.repos.d/     

base.repo

#安装lamp相关包

[root@d1a9820797a8 /]# yum -y install vim httpd php  php-mysqlnd mariadb-server

#修改为prefork模式支持httpd 模块方式

[root@fbdfe69be5f4 /]# vim /etc/httpd/conf.modules.d/00-mpm.conf

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

#制作lamp.php文件

[root@fbdfe69be5f4 /]# vim /var/www/html/lamp.php

<?php

try {

       $user='root';

       $pass='';

       $dbh = new PDO('mysql:host=localhost;dbname=mysql', $user, $pass);

       foreach($dbh->query('SELECT user,host from user') as $row) {

              print_r($row);

       }

       $dbh = null;

} catch (PDOException $e) {

       print "Error!: " . $e->getMessage() . "<br/>";

       die();

}

phpinfo();

?>

#启动httpd和mariadb服务

[root@fbdfe69be5f4 /]# systemctl start httpd  mariadb

#检查容器80端口已启动

[root@fbdfe69be5f4 /]# ss -nlt

State      Recv-Q     Send-Q         Local Address:Port           Peer Address:Port    

LISTEN     0          128                  0.0.0.0:80                  0.0.0.0:*       

LISTEN     0          80                         *:3306                      *:*

#检查宿主机80端口已启动

[root@Ubuntu1804 ~]# ss -nlt

State     Recv-Q     Send-Q          Local Address:Port           Peer Address:Port    

LISTEN    0          128             127.0.0.53%lo:53                  0.0.0.0:*       

LISTEN    0          128                   0.0.0.0:22                  0.0.0.0:*       

LISTEN    0          128                 127.0.0.1:6012                0.0.0.0:*       

LISTEN    0          128                 127.0.0.1:6013                0.0.0.0:*       

LISTEN    0          128                         *:80                        *:*       

LISTEN    0          128                      [::]:22                     [::]:*       

LISTEN    0          128                     [::1]:6012                   [::]:*       

LISTEN    0          128                     [::1]:6013                   [::]:*  

 

#浏览器访问http://宿主机IP/lamp.php可以看到如下页面,LAMP 搭建成功!

 

三、写出 docker run 命令的延申指令,如怎么在停止一个 docker 容器的时候自动删除该容器

#在启动容器时添加--rm参数

[root@Ubuntu1804 ~]# docker run -it --name test --rm alpine

/ # exit

[root@Ubuntu1804 ~]# docker ps -a

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                NAMES

 

 

四、写出 docker run 命令在自动启动 docker 服务时通过什么参数能够启动 docker 中的容器,从而实现容器随着 docker 服务的启动而自动启动

#在启动容器时添加--restart=always参数

[root@Ubuntu1804 ~]# docker run -it --name test --restart=always alpine

/ # exit

[root@Ubuntu1804 ~]# docker ps -a

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                NAMES

2b7fc543fcb2        alpine              "/bin/sh"           7 seconds ago       Up 1 second                              test

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值