配置docker

本文最后更新于:2022年6月14日 晚上

1 安装

  • 使用脚本安装
1
curl -sSL https://get.daocloud.io/docker | sh

image-20220404224134678

  • 更改权限
1
sudo chmod 666 /var/run/docker.soc
image-20220411162329378
  • 查看版本
image-20220411162445405
  • 更改镜像源
1
2
cd /etc/docker
sudo vim daemon.json

​ 写入以下内容

1
2
3
4
5
6
7
8
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://ustc-edu-cn.mirror.aliyuncs.com",
"https://ghcr.io",
"https://mirror.baidubce.com"
]
}

​ 重启

1
service docker restart
image-20220411162942084

2 docker部署mysql

2.1 拉取镜像

image-20220411163511252
  • 拉取镜像
1
docker pull mysql:8.0.28-oracle
image-20220411163721573
  • 查看镜像
1
docker images
image-20220411163851617

2.2 启动实例

  • 启动mysql实例
1
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
image-20220411164304227
  • 进入docker环境
1
docker exec -ti xxx(容器id) /bin/bash
  • 登录mysql
1
mysql -u root -p

​ 输入密码,登陆成功

image-20220411165314050
  • 创建数据库,插入数据
1
2
3
4
5
create database dockertest;
use dockertest;
create table dt(name varchar(20), ID varchar(20));
insert into dt values('mysql 8.0.28','0ca4d64ca878');
select * from dt;
image-20220411170318569

3 打包新镜像

  • 退出镜像
1
2
quit();
exit
image-20220411170653064
  • 获得容器ID
1
docker ps -a
image-20220411170809761
  • 打包
1
docker commit 容器id 要保存的镜像名称
image-20220411171027162
  • 查看
1
docker images
image-20220411171108709

4 wsl2部署docker

4.1 原生部署

即使用上述方法,原生部署linux docker

4.2 docker desktop for windows

Windows 安装docker desktop ,wsl2可以使用

  • 下载应用

    下载链接

  • 默认安装,一路下一步

    image-20220418200802552
  • 在wsl2中启用

    • 启用基于WSL2的引擎

      image-20220418200924854
    • 允许安装的linux发行版使用

      image-20220418201010181

      5 docker 配置

      5.1 为容器配置代理

      更改C:\Users\UserName\.docker\config.json文件,更改之后,新建立的容器就会默认使用代理

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      {
      "credsStore": "desktop",
      "proxies":
      {
      "default":
      {
      "httpProxy": "http://host.docker.internal:10811",
      "httpsProxy": "http://host.docker.internal:10811",
      "noProxy": "docker-registry.somecorporation.com,*.test.example.com,.example2.com"
      }
      }
      }

      不能使用127.0.0.1,Port应该使用局域网的端口,V2rayN 就是10811,clash就是7890

      5.2 安装常见容器

      5.2.1 Ubuntu 20.04

      • 安装

        挂载

      1
      2
      3
      4
      # 拉取镜像
      docker pull ubuntu:latest
      # -p 端口转发 -v 将/root挂载到本地
      docker run -it -p 50022:22 --name ubuntu -v C:\Users\FengisZZZ\Documents\DockerFiles\DockerUbuntu\root\:/root/ -d ubuntu:latest
      • 换源

        需要安装ca-certificates,之后正常换源

        1
        apt install ca-certificates

      5.3.2 Mysql

      • 安装

        1
        2
        3
        4
        5
        # 拉取镜像
        docker pull mysql:latest
        # 启动
        docker run --name=mysql -it -p 3306:3306 -e MYSQL_ROOT_PASSWORD=040057 -v C:\Users\FengisZZZ\Documents\DockerFiles\DockerMysql\data:/var/lib/mysql-files
        -v C:\Users\FengisZZZ\Documents\DockerFiles\DockerMysql\conf:/etc/mysql -v C:\Users\FengisZZZ\Documents\DockerFiles\DockerMysql\log:/var/log/mysql -d mysql