查看端口占用:
lsof -i:端口号
保持SSH长连接
ssh -o ServerAliveInterval=30 用户名@IP
复制容器到另外一台服务器
把当前的容器提交为一个镜像:
docker commit 容器名 镜像名
将镜像存为tar文件:
docker save 镜像名 xxx.tar
将备份文件.tar 复制到目的主机下:
scp xxx.tar root@192.X.X.X:/root
将备份文件.tar恢复为镜像:
docker load -i xxx.tar
根据镜像重新运行起容器:
docker run -d -p 8080:8080 --name='容器名' 镜像名
修改镜像名称:
docker tag 镜像ID 新镜像名称:版本
从容器里面拷贝文件/目录到本地一个路径:
docker cp xxx:/tmp/yum.log /root
docker常用指令
查看成功运行的容器:docker ps
查看全部容器(包括启动失败):docker ps -a
删除容器:docker rm container_id/名称
启动:docker start container_id/名称
停止:docker stop container_id/名称
查看容器最近500行日志: docker logs -f --tail=500 container_id/名称
进入容器:docker exec -it container_id/名称 bash
退出容器:exit
Linux
查看端口号占用情况:lsof -i
查看内存使用情况:free -h
docker mysql
docker pull mysql:8.0.27
在宿主机创建放置mysql的配置文件的目录和数据目录,并且进行授权:
mkdir -p /usr/mysql/conf /usr/mysql/data
chmod -R 755 /usr/mysql/
在上面创建的配置文件目录/usr/mysql/conf下创建MySQL的配置文件my.cnf:
[client]
#socket = /usr/mysql/mysqld.sock
default-character-set = utf8mb4
[mysqld]
#pid-file = /var/run/mysqld/mysqld.pid
#socket = /var/run/mysqld/mysqld.sock
#datadir = /var/lib/mysql
#socket = /usr/mysql/mysqld.sock
#pid-file = /usr/mysql/mysqld.pid
datadir = /usr/mysql/data
character_set_server = utf8mb4
collation_server = utf8mb4_bin
secure-file-priv= NULL
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Custom config should go here
!includedir /etc/mysql/conf.d/
启动创建容器:
docker run -d --name mysql -v /usr/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /usr/mysql/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=密码 mysql:8.0.27
mysql指令注意分号
进入容器:docker exec -it mysql bash
进入mysql控制台:mysql -u root -p
遇到连接数过多问题:
- 进入Mysql数据库查看max_connection_errors: show variables like “max_connection_errors”;
- 修改max_connection_errors的数量为1000: set global max_connect_errors = 1000;
- 修改 max_connections 的数量为1000 :set global max_connections = 1000;
- 刷新连接数:flush hosts;
退出控制台:exit;
gitlab
刷新配置:gitlab-ctl reconfigure
重新启动:gitlab-ctl restart
查看状态:gitlab-ctl status
docker redis
docker pull redis:latest
创建容器:docker run -p 6379:6379 --name redis --sysctl net.core.somaxconn=1024 -v /usr/local/redis/redis.conf:/etc/redis/redis.conf -v /usr/local/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
–appendonly yes 数据持久化
- 进入redis的容器 docker exec -it redis bash
- 进入redis目录 cd /usr/local/bin
- 进入控制台:redis-cli
- 查看现有的redis密码:config get requirepass
- 设置redis密码config set requirepass ****(****为你要设置的密码)
docker nginx
创建容器:docker run --name nginx -d -p 80:80 --restart=always -e TZ=“Asia/Shanghai” -v /usr/local/nginx/html:/usr/share/nginx/html -v /usr/local/nginx/log:/var/log/nginx -v /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf:ro nginx
重载配置:nginx -s reload
Jenkins
启动:systemctl start jenkins