几年前入门学过一下Docker,可惜实际中没使用逐渐忘了,现在项目需要重新捡起来,发现Docker还是很好玩的。

记录一些不错的入门学习笔记的连接:

30分钟快速入门Docker教程-LiangGzone

Docker入门教程Docker微服务教程-阮一峰

Docker教程-奇客谷

使用Docker搭建MySQL服务Docker简易使用手册-Sablier

Docker安装typecho-Scofield

使用Docker搭建Caddy+Typecho个人博客网站-chamboin

Docker镜像制作教程:减小镜像体积-fuckcloudnative

安装docker

阿里云上发现了docker-ce的安装教程:https://developer.aliyun.com/mirror/docker-ce

# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce
 
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# apt-cache madison docker-ce
#   docker-ce | 17.03.1~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
#   docker-ce | 17.03.0~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# Step 2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.1~ce-0~ubuntu-xenial)
# sudo apt-get -y install docker-ce=[VERSION]

如果有失败,比如用Ubuntu20,则手动配一下:

nano /etc/apt/sources.list.d/docker.list

deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable

测试:

sudo docker run hello-world

修改docker镜像源

修改或新增 /etc/docker/daemon.json

# nano /etc/docker/daemon.json
{
    "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

systemctl restart docker.service

再次执行hello-world测试。

安装docker-compose

官方教程:https://docs.docker.com/compose/install/

最快方法:https://github.com/docker/compose/releases

下载最新版,拷贝到/usr/local/bin下,重命名为docker-compose,加执行权限,OK!

安装MySQL

mkdir -p /root/dk-mysql/conf

mkdir /root/dk-mysql/logs

mkdir /root/dk-mysql/data

创建文件:/root/dk-mysql/conf/touchmysql.cnf

docker run -p 3306:3306 --name jfzmysql -v /root/dk-mysql/conf:/etc/mysql/conf.d -v /root/dk-mysql/logs:/logs -v /root/dk-mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.30

docker exec -it jfzmysql bash

可以用工具远程试试能不能连进去,如不行则配置:

mysql -uroot -p
use mysql;
select host,user from user;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;

docker logs -f --tail 10 a4dac74d48f7

安装php并加入mysql插件

Dockerfile:

FROM php:7.2.3-fpm
LABEL maintainer="sandeepin<sandeepin@qq.com>"

RUN apt-get update
RUN docker-php-ext-install pdo_mysql

docker build -t sandeepin/php:7.2.3-fpm .

docker images|grep sandeepin/php:7.2.3-fpm

docker run --name jfzphp72 -p 9000:9000 -v /root/dk-web:/var/www/html --link jfzmysql -d sandeepin/php:7.2.3-fpm

安装caddy

docker run --name jfzcaddy -v /root/dk-web:/srv -v /root/Caddyfile:/etc/Caddyfile -p 80:80 -p 443:443 -d abiosoft/caddy

CaddyfileL:

:80 {
    gzip
    browse
    rewrite {
        if {path} not_has admin
        to {path} {path}/ /index.php
    }
    fastcgi / 192.168.233.254:9000 php {
        root /var/www/html
    }
    log ./caddy.log
}

请在本机的/root/dk-web目录下面,添加一个最简单的PHP文件index.php测试。

<?php phpinfo(); ?>

安装Portainer

拉取镜像:

docker pull portainer/portainer

运行镜像:

mkdir /root/portainer

docker run -d -p 7000:9000 -v /root/portainer:/data -v /var/run/docker.sock:/var/run/docker.sock --name portainer portainer/portainer

文章目录