文章目录
- 安装docker
- 测试docker
- 关于windows docker
- 拉取镜像
- 查看所有镜像
- 删除镜像
- 删除不在运行的进程
- 强制删除正在运行的进程
- 启动docker容器服务
- `-d`测试
- 停止docker容器服务
- 查看docker启动进程
- 更新容器(没有自启动功能,更新为自启动)
- docker端口映射
- 进入容器修改内容
- 退出容器修改内容
- docker mysql容器
- 安装linux的mysql
- 初始化mysql
- 配置参数
- 重新设置mysql登录密码
- iBMC开启88端口的防火墙访问
安装docker
先试过这篇文章(不管用,你们可能会解决)
之后我就用了自带的
dnf
参考这篇dnf install -y docker-ce
然后各种报错,**原因其实都是源的问题(本来想偷懒,结果越来越麻烦)**试了一下午就恼火了,开始直接改元
[docker-ce-stable] 中的
baseurl
改成了https://mirrors.huaweicloud.com/docker-ce/linux/centos/8.0/x86_64/stable/ (其实换成你想要的版本即可,但要注意系统需对牢)
但还是
需要修改所有gpgkey
,改成华为镜像https://mirrors.huaweicloud.com/docker-ce/linux/centos/gpg(记得加gpg)
再次dnf install -y docker-ce
安装成功
测试docker
docker pull hello-world:latest
报错:Cannot connect to the Docker
daemon at uix:///var/run/docker.sock.Is the docke
daemon running?
参考
说是这个错误通常发生在没有正确配置 Docker 或者权限不足的情况下
解决方法
查看/var/run/docker.dock
文件是否变成目录,如果是就删除该目录ll /var/run/docker.sock
如果不是文件夹也没有文件(我是这个情况),直接
systemctl restart docker
就可以正常使用了
下载出现
我们开始换源!vim /etc/docker/daemon.json
在里面填写
{ "registry-mirrors":[ "https://82m9ar63.mirror.aliyuncs.com" ], "exec-opts":["native.cgroupdriver=systemd"], "log-driver": "json-fille", "log-opts":{ "max-size": "100m" }, "storage-driver": "overlay2" }
重启
systemctl deamon-reload
出现报错
你这里要确保/systemd-rc-local
是否是能被执行的ll /etc/rc.d/rc.local
# 设置为可执行 chmod +x /etc/rc.d/rc.local
这样再次去执行
systemctl deamon-reload
就可以成功#重启docker systemctl restart docker
systemctl status docker
注意ctrl+c
键退出
先试着启动systemctl start docker
还是报错,没办法只能
journalctl -xeu docker.service
查看docker进程docker ps|grep elastic
启动dockersystemctl enable docker
也还是上述问题
手动启动dockerd
使用docker images
查看所有镜像
关于windows docker
下载地址需要下载WSL (其实是powershell管理员运行输入wsl --install
)和powershell管理员运行配置: Enable-WindowsOptionalFeature -Online -FeatureName $("Microsoft-Hyper-V", "Containers") -All
这俩部后都要重启计算机(会更改配置)
配置windows的deamon.json
文件
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"features": {
"buildkit": true
},
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn"
]
}
这样你的docker就可以在windows上正常使用了。其实还不完全但错误太多只能记录到这里,妄请大家见谅
拉取镜像
#下载最新版(docker pull mysql)
docker pull 镜像名
#下载指定版本(docker pull mysql:6.2.4 )
docker pull 镜像名:版本号
比如拉取mysql应用
docker pull mysql
下载下来的东西都在本地
查看所有镜像
docker images
我这里只下了
hello-world
的镜像
删除镜像
#docker rmi mysql(默认删除mysql:latest)
docker rmi 镜像名
#docker rmi mysql:6.2.4
docker rmi 镜像名:版本号
#docker rmi d2c94e258dcb
docker rmi IMAGE_ID
删除不在运行的进程
docker rm 自己使用--name取的名字
docker rm IMAGE_ID
强制删除正在运行的进程
docker rm -f IMAGE_ID
启动docker容器服务
#docker run 设置项 镜像名 镜像启动运行的命令(镜像里面默认有的,一般不会写)
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用的设置项[optrions]
--name
:给应用起个名字,比如--name=chenmysql
-d
: 后台运行--restart
:其中一个参数always
这个参数表示这个容器服务下次服务器重启后会开机自启-p
: 表示port,意思就是端口
docker run mysql
-d
测试
docker run --name=mynginx -d nginx
需要进行停止服务或删除服务,因为有应用在运行了
停止docker容器服务
docker stop IMAGE_ID
查看docker启动进程
docker ps
查看所有docker启动进程
docker ps -a
更新容器(没有自启动功能,更新为自启动)
docker update IMAGE_ID --restart=always
docker端口映射
docker run --name=mynginx -d --restart=always -p 88:80 nginx
进入容器修改内容
进入容器的命令台
#docker exec -it IMAGE_ID /bin/sh
docker exec -it IMAGE_ID /bin/bash
这个nginx的html项目一般在
/usr/share/nginx/html/
若执行
docker exec -it mysql_image_id /bin/bash
报错
则docker start IMAGE_ID
退出容器修改内容
输入
exit
即可
docker mysql容器
设置 Docker 卷
docker volume create mysql-data
您可以通过发出以下命令列出 Docker 已知的所有卷
docker volume ls
docker run -d --name=mysql-server -p 3306:3306 -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=your_password mysql
如果出现docker ps -a
中看到mysql是STATUS:‘ Exited (1) 2 minutes ago
状态,那需要携带 --privileged
docker run --privileged -d --name=mysql-server -p 3306:3306 -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=your_password mysql
安装linux的mysql
下载的网页页面
wget https://dev.mysql.com/get/Downloads/MySQL-8.2/mysql-8.2.0-linux-glibc2.28-x86_64.tar.xz
tar -zxvf mysql-8.2.0-linux-glibc2.28-x86_64.tar.xz -C /usr/local/mysql
可以直接
xz -d mysgl-8.2.8-1inu×-g1ibc2.28-×86_64.tar.×z
tar -xvf mysgl-8.2.8-1inu×-g1ibc2.28-×86_64.tar -C /usr/local/
#更换为mysql文件名
mv mysgl-8.2.8-1inu×-g1ibc2.28-×86_64 mysql
进入mysql目录里
- 创建mysql组和用户
groupadd mysql
useradd -r -g mysql mysql
- 赋予权限
chown -R mysql.mysql /usr/local/mysql
初始化mysql
进入mysql的bin目录下
./mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --initialize
配置参数
vim /etc/my.cnf
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
#character config
character_set_server=utf8mb4
symbolic-links=0
懒得写了,反正我是参考这篇文章的
重新设置mysql登录密码
mysqladmin password yourpassword
ln -s /usr/local/mysql/bin/mysqladmin /usr/bin
mysqladmin -u root -p password yourpassword
上图是我输入密码的所以(passwoed:YES)不是密码正确,重点是
connect to server at 'localhost' failed
在/etc/my.cnf
中添加一段skip-grant-tables
iBMC开启88端口的防火墙访问
最简单的方法就是
systemctl stop firewalld
但是这样不安全而且用不到这么多端口所以一般不会去做
启动防火墙systemctl start firewalld
开放一个端口
firewall-cmd --add-port=88/tcp --permanent
重启firewall-cmd --reload
这样对于本机的linux就可以了,虽然我们RH1288V3
和电脑是在同一个网段下面但是对于防火墙的操作还是要在iBMC
上的
还以为是这个(当然windows查看mac地址的方式的
ipconfig /all
)结果不是。。。。