Docker部分基本命令

docker创建容器

  • 下载镜像
$ docker pull 镜像名
例如:
默认版本
$ docker pull mysql
指定版本
$ docker pull mysql:8.0.17
  • 创建mysql容器
docker run -it -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:8.0.17 /bin/bash
现在就是在mysql容器中了,可以输入 mysql -u root -p 进入mysql了

在这里插入图片描述

但是这里会报错,当时也是在网上看了各种方法都没用,后来自己看了mysql镜像的dockerfile,发现里面有几条CMD的命令,因为我们在创建容器时结尾加上了 /bin/bash ,
这命令会覆盖掉dockerfile里面的CMD命令,导致mysql容器少了一些东西
  • 将创建mysql容器的命令改为:
$ docker run -d -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:8.0.17
为什么不用-it呢,因为我试了之后会在一个地方卡住,但是容器还创建成功了,所以索性直接用 -d
-it以及-d会在下面介绍是什么意思
  • 进入容器
$ docker exec -it mysql /bin/bash
  • 进入mysql
$ mysql -u root -p

一般来说用docker创建mysql不是很安全,万一docker崩了里面的数据也就没了,所以建议在创建命令的时候加上-v挂载目录,在下面我会细说

  • 当进入mysql有可能会发现没法输入中文,我查看资料说的是编码格式的问题,但是容器内没有vim编辑器,也还有一种办法,在启动的时候设置编码,另一种办法在文章末尾
$ docker exec -it mysql env LANG=C.UTF-8 /bin/bash

docker 文件挂载

  • 创建数据卷:
$ docker volume create 数据卷名
例如
$ docker volume create vol_mysql
  • 删除数据卷
$ docker volume rm 数据卷名
  • 查看数据卷的位置
$ docker inspect vol_mysql | grep vol

在这里插入图片描述

Mountpoint后面就是创建的数据卷的位置
  • 创建容器并将数据卷挂载到容器中(这里我们用busybox镜像)
$ docker run -it --name busybox -v /var/lib/docker/volumes/vol_mysql/_data:/volbusybox busybox

在这里插入图片描述

  • 在宿主机下进入数据卷的位置创建文件
    在这里插入图片描述

  • 回到容器查看在容器内创建的文件是否有数据

在这里插入图片描述

反过来也可以,在容器内创建数据,宿主机也会有数据
  • 数据挂载成功

docker 端口映射

  • 运行一个镜像容器
$ docker run -it -p 8070:8080 -v /root/mysql:/mysql --privileged=true busybox
  • -it 创建一个交互式的容器

  • -p 映射端口8070 本机的端口 映射的容器的端口

  • -v 挂载目录/root/mysql 本地目录 /mysql容器目录,在创建前容器是没有mysql目录的,docker 容器会自己创建

  • –privileged=true 关闭安全权限,否则你容器操作文件夹没有权限
    在这里插入图片描述
    由于创建容器的时候没有指定名字,所以容器会给你一个自定义名字,docker ps 查看

docker cp命令

  • 将宿主机下的目录或文件拷贝到容器中
$ docker cp /root/project/ f88d45e473d0:/
$ docker cp /root/apt.conf f88d45e473d0:/
  • 在容器内查看
    在这里插入图片描述
  • 将容器内的文件拷贝到宿主机中
$ docker cp f88d45e473d0:/var /root

在这里插入图片描述

重启docker服务,正在运行的容器全都关闭,解决方法

  • 在创建容器时加入参数:–restart=always
$ docker run -d --restart=always --name bu busybox
  • 更改配置
$ vim /etc/docker/daemon.json
加入
"live-restore": true
不建议使用,此配置文件影响全局

docker容器内安装vim等工具

  • 最近使用mysql容器出现了问题,需要使用vim去更改一些配置文件
  • 第一步
$ apt-get update

如果这里报错了,那就和我一样了,网上办法都试了,依然没有解决办法,索性跳过这个错误,我不用容器的vim了,重新创建容器挂载文件

$ docker run -d --privileged=true --name mysql -e MYSQL_ROOT_PASSWORD=123465 -v /root/my.cnf:/etc/mysql/my.cnf mysql:8.0.17

如果只是要修改my.cnf的配置文件,就先在宿主机下/root将my.cnf配置好,之后再挂载到容器里面my.cnf的位置,如果需要修改多个,可以再写多个-v去挂载文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值