1.1 Centos下 docker 安装
-
yum 包更新到最新
sudo yum update
-
安装依赖包,yum-util 提供 yum-config-manager功能,另外两个是安装驱动
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
-
设置 yum 源为阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
安装docker
sudo yum install docker-ce
-
安装完成后查看docker版本
docker -v
1.2设置 ustc 镜像
编辑文件:vi /etc/docker/daemon.json
添加 {"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]}
1.3 Docker 的启动与停止
systemctl 命令是系统服务管理器指令
-
启动 docker
systemctl start docker
systemctr status docker
// 查看启动状态 -
关闭 dockr
systemctl stop docker
systemctl status docker
-
重启 docker
systemctl restart docker
systemctl status docker
-
开机启动
systemctl enable docker
systemctl status docker
-
docker 信息
docker info
-
docker帮助命令
docker --help
常用命令
镜像命令
-
查看镜像
dcoker images
-
搜索镜像
docker search centos
参数表示: NAME: 仓库名称 DESCRITION: 镜像描述 STARS: 用户评价,第一个是评价最高的镜像 OFFICIAL: 是否是官方提供的镜像 AUTOMATED: 自动构建,表示该镜像由 Docker Hub自动构建流程创建的
-
拉去镜像
docker pull 镜像名:版本号
例如:docker pull centos:7
如果不指定版本, 则默认最后一个版本 -
删除镜像
docker rmi 镜像ID
或者docker rmi 镜像名
-
删除所有镜像
docker rmi `docker images -q`
容器命令
-
查看运行中的容器
docker ps
-
查看所有容器,包括没有运行的
docker ps -a
-
创建与启动容器
docker run
后面会跟一些参数,参数讲解
参数说明 -i 表述运行容器 -t 表示容器启动后会进入命令行模式,一般 -it 一起使用,能够分配一个伪终端并且登录进去 --name 为创建的容器命名 -v 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个 -v 做多个目录或者文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上 -d 在run后面加上 -d 参数,则会创建一个守护式容器在后台运行,这样创建的容器不会自动登录容器,如果只加-i-t 两个参数,创建后就会自动进入容器
例如 交互式创建容器 docker run -it --name=容器名称 镜像名称:标签 /bin/bash
-
删除容器
docker rm 容器ID
-
删除所有容器
docker rm $(docker ps -aq)
-
停止并删除所有容器
docker stop $(docker ps -q) & docker rm $(docker ps -aq)
mysql 相关
-
查看可用 mysql 版本
docker search mysql
-
拉取指定版本的mysql
docker pull mysql:5.6
-
查看拉去的mysql:
docker images |grep mysql
-
运行 myql:
docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
- -p 3306:3306: 将容器的 3306 端口映射到主机的 3306 端口
- -v -v $PWD/conf:/etc/mysql/conf.d 将主机当前目录下的conf/my.cnf 挂载到的容器的 /etc/mysql/my.cnf
- -v $PWD/log:/logs: 将主机当前目录下的 logs 挂载到容器的 /logs
- $PWD/data:/var/lib/mysql 将主机当前目录下的data目录挂载到容器的 /var/lib/mysql
- -e MYSQL_ROOT_PASSWORD=123456 初始化 root 的密码
-
进入容器
docker exec -ti mysql bash
-
登陆mysql
mysql -u root -p
-
然后执行
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'guofeng2019'
; -
添加远程登录用户:
CREATE USER 'liaozesong'@'%' IDENTIFIED WITH mysql_native_password BY '123456!'; GRANT ALL PRIVILEGES ON *.* TO 'liaozesong'@'%';
mongo
-
启动:
docker run -p 27017:27017 -v $PWD/db:/Users/guofeng/Documents/DB/mongodb -d mongo
Redis(这个来自w3cschool)
-
启动redis:
docker run -p 6379:6379 -v $PWD/data:/data -d redis:3.2 redis-server --appendonly yes
命令说明
-
p 6379:6379 : 将容器的6379端口映射到主机的6379端口
-
-v $PWD/data:/data : 将主机中当前目录下的data挂载到容器的/data
-
redis-server --appendonly yes : 在容器执行redis-server启动命令,并打开redis持久化配置