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 简介: Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
- docker hub :Docker Hub 是一个云服务,开发者可以共享或者管理容器镜像,也可以通过它来构建容器镜像,进行镜像仓库的管理等。
- docker 一小时入门精讲课程(合集)
- docker 一小时入门教程