这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天
云服务器(Ubuntu)安装Docker
1.先卸载可能存在的旧版本
sudo apt-get remove docker docker-engine docker-ce docker.io
2. 更新apt包索引
sudo apt-get update
3.使用apt
安装一些允许通过HTTPS才能使用的软件包:
sudo apt install apt-transport-https ca-certificates curl software-properties-common
鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。
为了确认所下载软件包的合法性,需要添加软件源的 GPG
密钥。
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 官方源
# $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
然后,我们需要向 sources.list
中添加 Docker 软件源
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 官方源
# $ echo \
# "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
# $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
以上命令会添加稳定版本的 Docker APT 镜像源,如果需要测试版本的 Docker 请将 stable 改为 test。(呃,正常人谁用test版本啊。。。)
3.再一次更新 apt 软件包缓存并安装 docker-ce
:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
4.使用脚本自动安装
在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Ubuntu 系统上可以使用这套脚本安装,另外可以通过 --mirror
选项使用国内源进行安装:
若你想安装测试版的 Docker, 请从 test.docker.com 获取脚本
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun
执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker 的稳定(stable)版本安装在系统中。
5.启动 Docker
==enable==--> 设置为开机自动启动
sudo systemctl enable docker
sudo systemctl start docker
6.建立 docker 用户组
默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket
。出于安全考虑,一般 Linux 系统上不会直接使用 root
用户。因此,更好地做法是将需要使用 docker
的用户加入 docker
用户组。
建立 docker 组:
sudo groupadd docker
将当前用户加入 docker 组:
sudo usermod -aG docker $USER
退出当前终端并重新登录,进行如下测试。
docker run hello-world
Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 2db29710123e: Pull complete Digest: sha256:aa0cc8055b82dc2509bed2e19b275c8f463506616377219d9642221ab53cf9fe Status: Downloaded newer image for hello-world:latest
Hello from Docker! This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
- The Docker client contacted the Docker daemon.
- The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64)
- The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading.
- The Docker daemon streamed that output to the Docker client, which sent it to your terminal.
To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID: hub.docker.com/
For more examples and ideas, visit: docs.docker.com/get-started…
若能正常输出以上信息,则说明安装成功
7.配置国内镜像源
Docker
在默认安装之后,通过命令docker pull
拉取镜像时,默认访问docker hub上的镜像,在国内网络环境下,下载时间较久,所以要配置国内镜像仓库。
-
第一步:新建或编辑daemon.json
vim /etc/docker/daemon.json
-
第二步:daemon.json中编辑如下
{ "registry-mirrors": [ "https://registry.docker-cn.com", "http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn" ] }
-
重启docker,并使用
docker info
命令查看sudo systemctl daemon-reload
sudo systemctl restart docker
sudo docker info
docker搭建mysql8.0.32环境并开放远程
配置mysql
1.拉取
docker pull mysql:8.0.32
2.挂载路径创建(路径随意)
mkdir -p /usr/local/app/mysql/conf
mkdir -p /usr/local/app/mysql/data
mkdir -p /usr/local/app/mysql/logs
3.创建mysql 配置文件
vim /usr/local/app/mysql/conf/my.cnf
将以下内容添加到 my.cnf
文件中
[mysqld]
init-connect="SET collation_connection=utf8mb4_0900_ai_ci"
init_connect="SET NAMES utf8mb4"
skip-character-set-client-handshake
host_cache_size=0
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
user=mysql
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/var/run/mysqld/mysqld.sock
!includedir /etc/mysql/conf.d
4.开放挂载路径访问权限
chmod -R 777 /usr/local/app/mysql/
5.运行
docker run --name mysql -v /usr/local/app/mysql/logs:/var/log/mysql -v /usr/local/app/mysql/data:/var/lib/mysql -v /usr/local/app/mysql/conf:/etc/mysql/conf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.32
不要忘记放行服务器端口3306
6.进入mysql实例中
docker exec -it mysql sh
mysql开放远程访问
7.进入mysql中
mysql -u root -p
alter user 'root'@'%' identified by '123456' password expire never;
alter user 'root'@'%' identified with mysql_native_password by '123456';
8.刷新权限
flush privileges;
9.测试--查看用户信息
select host,user,plugin,authentication_string from mysql.user;