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