Docker基本操作

232 阅读3分钟

1.1 Centos下 docker 安装

  1. yum 包更新到最新 sudo yum update

  2. 安装依赖包,yum-util 提供 yum-config-manager功能,另外两个是安装驱动 sudo yum install -y yum-utils device-mapper-persistent-data lvm2

  3. 设置 yum 源为阿里云 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

  4. 安装docker sudo yum install docker-ce

  5. 安装完成后查看docker版本 docker -v

1.2设置 ustc 镜像

编辑文件:vi /etc/docker/daemon.json 添加 {"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]}

1.3 Docker 的启动与停止

systemctl 命令是系统服务管理器指令

  1. 启动 docker systemctl start docker systemctr status docker // 查看启动状态

  2. 关闭 dockr systemctl stop docker systemctl status docker

  3. 重启 docker systemctl restart docker systemctl status docker

  4. 开机启动 systemctl enable docker systemctl status docker

  5. docker 信息 docker info

  6. docker帮助命令 docker --help

常用命令

镜像命令

  1. 查看镜像 dcoker images

  2. 搜索镜像 docker search centos

参数表示: NAME: 仓库名称 DESCRITION: 镜像描述 STARS: 用户评价,第一个是评价最高的镜像 OFFICIAL: 是否是官方提供的镜像 AUTOMATED: 自动构建,表示该镜像由 Docker Hub自动构建流程创建的

  1. 拉去镜像 docker pull 镜像名:版本号 例如: docker pull centos:7 如果不指定版本, 则默认最后一个版本

  2. 删除镜像 docker rmi 镜像ID 或者 docker rmi 镜像名

  3. 删除所有镜像 docker rmi `docker images -q`

容器命令

  1. 查看运行中的容器 docker ps

  2. 查看所有容器,包括没有运行的 docker ps -a

  3. 创建与启动容器 docker run 后面会跟一些参数,参数讲解

参数说明 -i 表述运行容器 -t 表示容器启动后会进入命令行模式,一般 -it 一起使用,能够分配一个伪终端并且登录进去 --name 为创建的容器命名 -v 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个 -v 做多个目录或者文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上 -d 在run后面加上 -d 参数,则会创建一个守护式容器在后台运行,这样创建的容器不会自动登录容器,如果只加-i-t 两个参数,创建后就会自动进入容器

例如 交互式创建容器 docker run -it --name=容器名称 镜像名称:标签 /bin/bash

  1. 删除容器 docker rm 容器ID

  2. 删除所有容器 docker rm $(docker ps -aq)

  3. 停止并删除所有容器 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

    1. -p 3306:3306: 将容器的 3306 端口映射到主机的 3306 端口
    2. -v -v $PWD/conf:/etc/mysql/conf.d 将主机当前目录下的conf/my.cnf 挂载到的容器的 /etc/mysql/my.cnf
    3. -v $PWD/log:/logs: 将主机当前目录下的 logs 挂载到容器的 /logs
    4. $PWD/data:/var/lib/mysql 将主机当前目录下的data目录挂载到容器的 /var/lib/mysql
    5. -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

  1. 启动:

    docker run -p 27017:27017 -v $PWD/db:/Users/guofeng/Documents/DB/mongodb -d mongo

Redis(这个来自w3cschool)

  1. 启动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持久化配置