Ubuntu安装Docker及使用

几年前入门学过一下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