Docker

docker 命令

#docker 常用命令
docker ps -a # 查看所有容器
docker images # 查看所有镜像
docker run -it --name centos7 centos:7 /bin/bash # 创建容器
docker start centos7 # 启动容器
docker attach centos7 # 进入容器
docker exec -it centos7 /bin/bash # 进入容器
docker stop centos7 # 停止容器
docker rm centos7 # 删除容器
docker rmi centos:7 # 删除镜像
docker cp centos7:/usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf # 从容器中拷贝文件到宿主机
docker cp /usr/local/nginx/conf/nginx.conf centos7:/usr/local/nginx/conf/nginx.conf # 从宿主机拷贝文件到容器
docker commit -m "提交信息" -a "作者" 容器ID 镜像名:版本号 # 提交容器为镜像
docker save -o centos7.tar centos7 # 导出镜像
docker load -i centos7.tar # 导入镜像
docker export -o centos7.tar centos7 # 导出容器
docker import centos7.tar centos7 # 导入容器
docker build -t centos7:1.0 . # 通过Dockerfile构建镜像
docker run -d -p 8080:80 --name nginx centos7:1.0 # 后台运行容器

## docker mysql
docker pull mysql/mysql-server:latest # 拉取镜像
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql/mysql-server:latest # 启动容器
docker exec -it mysql bash # 进入容器
mysql -uroot -p # 登录mysql

## 远程连接授权
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
## 或者
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;


## 添加权限
CREATE USER 'root'@'%' IDENTIFIED BY 'root';
# 更改加密规则
ALERT USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

## 更新root密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;

## docker redis
docker pull redis:latest # 拉取镜像
docker run -p 6379:6379 --name redis -d redis:latest redis-server --appendonly yes # 启动容器
docker exec -it redis bash # 进入容器
redis-cli # 登录redis
## 密码登录
redis-cli -a 123456 # 登录redis 123456为密码
## 设置密码
config set requirepass 123456 # 设置密码为123456
## 取消密码
config set requirepass "" # 取消密码

#docker-compose 常用命令
docker-compose up -d # 启动容器
docker-compose down # 停止容器
docker-compose restart # 重启容器
docker-compose ps # 查看容器
docker-compose logs -f # 查看容器日志
docker-compose exec 容器名 bash # 进入容器
docker-compose build # 构建镜像
docker-compose pull # 拉取镜像
docker-compose push # 推送镜像
docker-compose images # 查看镜像
docker-compose rm # 删除容器
docker-compose stop # 停止容器
docker-compose start # 启动容器
docker-compose kill # 杀死容器
docker-compose down # 停止容器
docker-compose restart # 重启容器

docker mysql

docker pull mysql/mysql-server
docker run --name mysql-local -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql/mysql-server

进入到 docker 容器中修改连接权限,否则只能本地连接

docker exec -it mysql-local bash
# 进入mysql命令行
mysql -uroot -p123456
# 授权
use mysql;
# 允许root 通过localhost连接数据库
update user set host = "%" where user='root';
# 修改密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'admin_123';

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'admin_123';

# 查看数据用户密码格式
use mysql;
select user, host, plugin from user;

# 刷新权限
flush privileges;

启动 phpadmin 容器

 docker run --name phpmyadmin -d --link mysql-local:db -p 8080:80 phpmyadmin

docker mongodb

# 下载 mongodb 镜像
docker pull mongo:4.4
# 不需要密码
docker run --name mongo-local -p 27017:27017 -d mongo:4.4
# 需要密码
docker run -itd --name mongo -p 27017:27017 mongo:4.4 --auth

# 查看容器
docker ps
# 通过容器名称进入容器内部,并以admin账号登陆mongo
docker exec -it mongo mongo admin
# 容器内部执行指令
db.createUser({ user:'root',pwd:'123456',roles:[ { role:'root', db: 'admin'}]});
# 连接账户
db.auth('root', '123456')

docker redis

# 下载 redis 镜像
docker pull redis:latest

# 启动容器
docker run -p 6379:6379 --name redis -d redis:latest redis-server --appendonly yes
## 或者
docker run -itd --name redis-test -p 6379:6379 redis

# 进入容器
docker exec -it redis bash
# 登录redis
redis-cli -h 192.168.0.1 -p 6379 -a 123456 -u root

图文

docker 安装

参考资料