Docker初始化配置
Docker初始化配置
lycheeKingUbuntu下安装Docker及MySQL(一遍过)| 青训营笔记
这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天
一键安装Docker
1 | curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun |
云服务器(Ubuntu)安装Docker
1.先卸载可能存在的旧版本
1 | sudo apt-get remove docker docker-engine docker-ce docker.io |
2. 更新apt包索引
1 | sudo apt-get update |
3.使用apt
安装一些允许通过HTTPS才能使用的软件包:
1 | sudo apt install apt-transport-https ca-certificates curl software-properties-common |
鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。
为了确认所下载软件包的合法性,需要添加软件源的 GPG
密钥。
1 | curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg |
1
2
3
官方源
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
然后,我们需要向 sources.list
中添加 Docker 软件源
1 | echo \ |
1
2
3
4 官方源
$ 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
:
1 | sudo apt-get update |
1 | sudo apt-get install docker-ce docker-ce-cli containerd.io |
4.使用脚本自动安装
(与上面的步骤二选一)
在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Ubuntu 系统上可以使用这套脚本安装,另外可以通过 --mirror
选项使用国内源进行安装:
若你想安装测试版的 Docker, 请从 test.docker.com 获取脚本
1 | curl -fsSL get.docker.com -o get-docker.sh |
1 | sudo sh get-docker.sh --mirror Aliyun |
执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker 的稳定(stable)版本安装在系统中。
5.启动 Docker
==enable==–> 设置为开机自动启动
1 | sudo systemctl enable docker |
1 | sudo systemctl start docker |
6.建立 docker 用户组
默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket
。出于安全考虑,一般 Linux 系统上不会直接使用 root
用户。因此,更好地做法是将需要使用 docker
的用户加入 docker
用户组。
建立 docker 组:
1 | sudo groupadd docker |
将当前用户加入 docker 组:
1 | sudo usermod -aG docker $USER |
退出当前终端并重新登录,进行如下测试。
1 | 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:latestHello 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 bashShare images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/For more examples and ideas, visit:
https://docs.docker.com/get-started/
若能正常输出以上信息,则说明安装成功
7.配置国内镜像源
Docker
在默认安装之后,通过命令docker pull
拉取镜像时,默认访问docker hub上的镜像,在国内网络环境下,下载时间较久,所以要配置国内镜像仓库。
第一步:新建或编辑daemon.json
1
vim /etc/docker/daemon.json
第二步:daemon.json中编辑如下
1
2
3
4
5
6
7
8
9#{
# "registry-mirrors": [
# "https://registry.docker-cn.com",
# "http://hub-mirror.c.163.com",
# "https://docker.mirrors.ustc.edu.cn"
# ]
#}
{ "registry-mirrors": [ "https://mirror.ccs.tencentyun.com" ] }重启docker,并使用
docker info
命令查看1
sudo systemctl daemon-reload
1
sudo systemctl restart docker
1
sudo docker info
docker搭建mysql8.0.32环境并开放远程
配置mysql
1.拉取
1 | docker pull mysql:8.0.32 |
2.挂载路径创建(路径随意)
1 | mkdir -p /usr/local/app/mysql/conf |
3.创建mysql 配置文件
1 | vim /usr/local/app/mysql/conf/my.cnf |
将以下内容添加到 my.cnf
文件中
1 | [mysqld] |
4.开放挂载路径访问权限
1 | chmod -R 777 /usr/local/app/mysql/ |
5.运行
1 | 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=yangming666@mysql -d mysql:8.0.32 |
==不要忘记放行服务器端口3306==
6.进入mysql实例中
1 | docker exec -it mysql sh |
mysql开放远程访问
7.进入mysql中
1 | mysql -u root -p |
1 | alter user 'root'@'%' identified by 'yangming666@mysql' password expire never; |
1 | alter user 'root'@'%' identified with mysql_native_password by 'yangming666@mysql'; |
8.刷新权限
1 | flush privileges; |
9.测试–查看用户信息
1 | select host,user,plugin,authentication_string from mysql.user; |
安装docker-compose
- 下载地址:(二进制文件)
https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64
- 添加可执行权限
1 | cd /usr/local/bin/ |
复制
- 测试安装结果 docker-compose –version
安装RabbitMQ
1. 获取rabbit镜像:
1 | docker pull rabbitmq:management |
2. 创建并运行容器
法一:
1 docker run -di --name=rabbitmq -p 15672:15672 rabbitmq:management
法二:
1 docker run -di --name rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=yangming666@rm -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management
-d
:在后台运行容器
-i
:交互式模式运行容器
--name rabbitmq
:将容器命名为rabbitmq
-e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=yangming666@rm
:设置RabbitMQ默认的用户名和密码
-p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883
:将RabbitMQ容器的几个端口暴露到Docker主机上,这些端口包括Web管理界面(15672),AMQP(5672),Erlang分布式节点间通信(25672),STOMP(61613)和MQTT(1883)。
rabbitmq:management
:使用RabbitMQ镜像,并启用Web管理插件。
查看容器日志
1 | docker logs -f rabbitmq |
3. 容器运行正常
使用 http://你的IP地址:15672
访问rabbit控制台
额外Linux相关排查命令
> more xxx.log 查看日记信息
> netstat -naop | grep 5672 查看端口是否被占用
> ps -ef | grep 5672 查看进程
> systemctl stop 服务
linux下PS1配置
1 | PS1="\[\e[36m\]\u\[\e[m\]\[\e[36m\]@\[\e[m\]\[\e[36m\]\h\[\e[m\]\[\e[32m\][\[\e[m\]\[\e[32m\]\t\[\e[m\]\[\e[32m\]]\[\e[m\]:\[\e[33m\]\w\n\[\e[m\]\[\e[34m\]\\$\[\e[m\] " |
1 | PS1="\[\033[01;31m\]\u\[\033[00m\]@\[\033[01;32m\]\h\[\033[00m\][\[\033[01;33m\]\t\[\033[00m\]]:\[\033[01;34m\]\w\[\033[00m\]\n# " |