目录
Docker学习之二
/  

Docker学习之二

Docker学习之二

搭建本地私有仓库

  1. 使用registry镜像创建私有仓库

    默认情况下,仓库会被创建在容器的/var/lib/registry目录下. 可以通过-v参数将镜像文件存放在本地的指定路径. 例如下面的例子将上传的镜像放到/opt/data/registry目录:
    
    docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry:2
    

此时, 在本地将启动一个私有仓库服务, 监听端口为5000.

  1. 管理私有仓库

    在虚拟机上, 就查看虚拟机的ip地址, 为172.16.166.130:5000

    • 首先使用tag命令将镜像标记为172.16.166.130:5000/test(:TAG)

      dokcer tag ubuntu:18.04 172.16.166.130:5000/test
      
    • 使用docker push 上传标记镜像

      docker push 172.16.166.130:5000/test
      
    • 出现下面情况

      [root@localhost ~]# docker push 172.16.166.130:5000/test
      The push refers to repository [172.16.166.130:5000/test]
      Get https://172.16.166.130:5000/v2/: http: server gave HTTP response to HTTPS client
      
      

      修改daemon.json文件, 如下所示

      {
              "registry-mirrors": [
                      "https://bji0ynbx.mirror.aliyuncs.com",
                      "https://registry.docker-cn.com",
                      "https://docker.mirrors.ustc.edu.cn",
                      "http://hub-mirror.c.163.com"
                      ],
              "insecure-registries": ["172.16.166.130:5000"], //添加这里
              "dns": ["8.8.8.8","8.8.4.4"]
      }
      

      重新加载文件, 并重启docker

      systemctl daemon-reload

      systemctl restart docker

      再次执行push命令

      Kw1d8U.png

  2. 下载已经上传的镜像

    当我们使用另一台计算机pull镜像的时候也需要修改/etc/docker/daemon.json文件

    "insecure-registries": ["172.16.166.130:5000]"

    • 修改Docker daemon的启动参数, 添加如下参数, 表示信任这个私有仓库, 不进行安全证书检查:

      DOCKER_OPTS="--insecure-registry 172.16.166.130:5000"
      

      之后重启docker服务, 并从私有仓库中下载镜像到本地:

      docker pull 172.16.166.130:5000/test
      

docker安装lamp

linux + apache2 + mysql + php

转载自:https://blog.csdn.net/a33130317/article/details/81304048

当我们下载镜像的时候, 一定要到

官网查看一下详细信息, 例如当前我们下载的镜像, mysql的默认root密码是Admin2015, php版本是5.6,

Kw84HA.png

  • 下载镜像

    docker pull linode/lamp

  • 建立docker卷

    docker volume create lamp_www           # apache的web根目录
    docker volume create lamp_apache_conf   # apache的配置目录
    docker volume create lamp_mysql_conf    # MySQL的配置目录
    docker volume create lamp_mysql_data    # MySQL的数据目录
    

    已经建立好的docker卷,在宿主机的目录为:

    /var/lib/docker/volumes/

  • 启动镜像

    docker run -it -p 80:80 -p 3306:3306 -v lamp_www:/var/www -v lamp_apache_conf:/etc/apache2 -v lamp_mysql_conf:/etc/mysql -v lamp_mysql_data:/var/lib/mysql --name lamp linode/lamp /bin/bash
    
    

    按照官方镜像的说明,我们使用了-i和-t两个参数,直接进入到了容器内.

    如果想退出容器,请不要使用exit或ctrl+d.这样会将容器直接关闭.

    退出请使用ctrl + p , ctrl + q

  • 进入终端

    docker exec -it lamp bash
    
  • 启动apache2和mysql

    service apache2 start
    service mysql start
    # 可以通过netstat -pant 命令查看80和3306端口有没有开启成功
    
  • 设置mysql允许root远程登录,及设置root的密码

    mysql -u root -p
    
    #密码:Admin2015
    
    #修改root可远程登录:
    
    mysql>use mysql;
    
    mysql>update user set host = '%' where user = 'root' and host='127.0.0.1';
    
    #修改密码:
    
    mysql>update user set password=password("your_password") where user='root';
    
    #刷新权限
    
    FLUSH PRIVILEGES;
    
    
  • 安装php扩展

apt-get update

apt-get install -y php5-mysql

apt-get install -y php5-gd

...
  • 然后重启apache2:

service apache2 restart

  • 再次确认mysql和apache2有没有安装成功:

netstat -pant

  • 可以通过下面的命令查看服务器上有哪些php的扩展:

apt-cache search php5-*

最后测试是否可用

docker安装tutum/lamp镜像

  1. 运行镜像(会自动下载)

    docker run -d -p 80:80 -p 3306:3306
    

    容器启动之后, 打开浏览器, 访问demo页面.

  2. 部署自定义PHP应用

    默认的应用启动了一个helloWorld应用

    ...

docker容器自启的开启和关闭

# 指定容器开启自启
docker update --restart=always 容器名

# 指定容器关闭自启
docker update --restart=no 容器名

标题:Docker学习之二
作者:gitsilence
地址:http://blog.lacknb.cn/articles/2019/10/26/1577974144247.html