docker安装rathena

9:26 2024-04-01

https://www.heidisql.com/download.php

https://blog.csdn.net/Trollz/article/details/126176819
# 创建自定义网络
okokok
docker network create --driver=bridge --subnet=122.168.1.0/24 my_custom_network
docker network rm
docker network connect --ip=122.168.1.100 网络名 容器名 

!!!
docker network connect --ip=122.168.1.100 my_custom_network mariadb-server

!!!查看docker在哪一个容器
docker network ls
docker network inspect <network_name>
okok
docker inspect -f '{{ .NetworkSettings.Networks }}' mariadb-server

 
# 运行一个容器,指定网络和IP
docker run --network=my_custom_network --ip=122.168.1.100 -d nginx

docker run --name mariadb-server -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 -d mariadb:latest
!!!!
okok
docker run --network=my_custom_network --ip=122.168.1.100 --name mariadb-server -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mariadb:latest


ro服务端docker  6900 6121 5121
docker run --network=my_custom_network --ip=122.168.1.101 --name ro-server -p 6900:6900 -p 5121:5121 -p 6121:6121 -itd ubuntu:latest

用到maridb链接后面的为映射的名称 
docker: Error response from daemon: No command specified.
这个问题是尾部未加 /bin/bash
docker run  --link mariadb-server:db --network=my_custom_network --ip=122.168.1.101 --name ro-server -p 6900:6900 -p 5121:5121 -p 6121:6121 -itd test/ro-server:v02 /bin/bash
加了db之后,数据库指向改成 db
镜像可以用tag重新命名

tag


docker exec -it ro-server /bin/bash


容器内的操作
apt-get update
apt-get upgrade
apt-get install vim
apt-get install bash-completion
vi /etc/bash.bashrc
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi
上面的解除屏蔽


容器外的操作,用于保存现在的容器,恢复会成镜像文件
docker export ro-server > ro-server_v03.tar

docker export mariadb-server > mariadb-server_v03.tar

sudo cat ro-server_v02.tar | sudo docker import - ro-server:v02

sudo docker save 镜像名 > /home/新镜像名.tar
sudo docker load < /home/自定义镜像

容器内的操作
https://github.com/rathena/rathena.git
git clone https://github.com/rathena/rathena.git

apt-get install git make libmariadb-dev libmariadbclient-dev libmariadbclient-dev-compat gcc g++ zlib1g-dev libpcre3-dev
apt-get install git make libmariadb-dev libmariadbclient-dev-compat gcc g++ zlib1g-dev libpcre3-dev

./configure && make clean && make server


apt-get install -y screen

screen -dmS login
screen -dmS char
screen -dmS map
screen -dmS web

screen -r login


mysql导入
  mysql -u root -p ragnarok < main.sql

  mysql -u root -p ragnarok < logs.sql

  mysql -u root -p ragnarok < item_db.sql

  mysql -u root -p ragnarok < item_db2.sql

  mysql -u root -p ragnarok < item_db_re.sql

  mysql -u root -p ragnarok < item_db2_re.sql

  mysql -u root -p ragnarok < item_cash_db.sql

  mysql -u root -p ragnarok < item_cash_db2.sql

  mysql -u root -p ragnarok < mob_db.sql

  mysql -u root -p ragnarok < mob_db2.sql

  mysql -u root -p ragnarok < mob_db_re.sql

  mysql -u root -p ragnarok < mob_skill_db.sql

  mysql -u root -p ragnarok < mob_skill_db2.sql

  mysql -u root -p ragnarok < mob_skill_db_re.sql


ROClien

git clone https://github.com/rAthenaCN/ROClientFullCN.git


容器内拷贝到容器外机器

docker cp mycontainer:/path/in/container /path/on/host
docker cp ro-server:/a/rathena240401.tar.gz /a/share
docker cp 4cc5f3141ab7:/a/rathena240401.tar.gz /a/share

CREATE USER 'ragnarok'@'%' IDENTIFIED BY 'ragnarok';
GRANT all privileges on *.* TO 'ragnarok'@'%';
FLUSH PRIVILEGES;
SHOW GRANTS FOR 'ragnarok'@'%';

GRANT USAGE ON *.* TO 'ragnarok'@'%' WITH GRANT OPTION;

!!!!!!!关于导出后mariadb后无法启动的解决方法

docker export my-mariadb  > my-mariadb_v04.tar
docker import my-mariadb_v04.tar my-mariadb:v04
docker run -d -p 3306:3306 --name my-mariadb -e MYSQL_ROOT_PASSWORD=root  my-mariadb:v01
docker run -itd -p 3306:3306 --name my-mariadb   my-mariadb:v01 /bin/bash

docker run -itd -p 3306:3306 --name my-mariadb   my-mariadb:v03 /bin/bash
/a/a.sh
/sbin/mariadbd --user=root 这里不能用&后台,不然也是运行完毕退出
docker run -itd -p 3306:3306 --name my-mariadb   my-mariadb:v04 /a/a.sh


docker内启动
/sbin/mariadbd --user=root &
Could not open mysql.plugin table: "Table 'mysql.plugin' doesn't exist". Some plugins may be not loaded

okok
mysql_install_db
mariadbd --user=root  &
mysqladmin  -u  root  password

CREATE USER 'root'@'%' IDENTIFIED BY 'root';
GRANT all privileges on *.* TO 'root'@'%';
FLUSH PRIVILEGES;
SHOW GRANTS FOR 'root'@'%';

GRANT USAGE ON *.* TO 'root'@'%' WITH GRANT OPTION;
-----------------------------------------------------------------

自动启动
--restart always
docker update --restart = always 容器id

--restart参数=
    no
        默认策略,在容器退出时不重启容器
    on-failure
        在容器非正常退出时(退出状态非0),才会重启容器
    on-failure:3
        在容器非正常退出时重启容器,最多重启3次
    always
        在容器退出时总是重启容器
# 开机自启
    unless-stopped
        在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
# 一般推荐使用always参数
    --restart=always

自定义功能:
循环读取脚本路径,接入自动翻译,写出到目标目录,实现实时汉化。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值