Docker在linux系统中的下载与使用
- 一、docker作用,下载及安装
- 二、docker镜像
- 三、创建容器
- 四、容器数据卷
一、docker作用,下载及安装
- ubuntu下载安装docker 命令:在ubuntu上面执行这个命令
- Docker version:查看docker是否安装成功
- 配置阿里云镜像加速:进入阿里云网站找到对应的容器镜像加速服务
- 根据操作文档中的步骤,复制搭配命令行执行即可,如在ubuntu中执行的命令
- Docker info可以查看docker 对应的信息
二、docker镜像
Docker run:根据镜像创建容器;
Docker run --help:查看docker run 命令的相关操作
Docker images:查看所有镜像文件
Docker images --help:查看docker images对应的操作
Docker search:本地没有镜像,查看线上仓库有没有镜像,如docker search mysql。或者进入docker hub网站查看有没有这个镜像。
搜索点赞数大于3000的mysql
Docker pull mysql:下载拉取镜像,如果不写tag,默认下载最新的版本
指定版本下载。已经拉取的部分就不会重复再拉取,只会把不存在的文件下载下来:docker的分层下载
Docker rmi -f 镜像id:可以通过名字或者id来进行删除操作,如果名字重复,可通过id进行删除。删除的只是最新版本的mysql有的,对与mysql5.7版本公共的部分不会删除
Docker rmi -f docker images -aq
:删除所有的镜像。-a所有的; -q只显示id
三、创建容器
–name:指定容器名称
-d:后台方式运行,给别人提供服务的才需要加上,如mysql,ngix ;而ubuntu就不需要加
-i:交互式操作
-t:终端 -i和-t一般写在一起,如果需要使用到终端命令,则要加上-it,如ubuntu要进入到容器当中,对其进行对应的命令操作,要加上-it
-p:指定容器的端口
如:1f6ddc1b2547:最好用镜像id来指定, /bin/bash:指明用的是哪一个脚本
docker run -it 1f6ddc1b2547 /bin/bash
执行后,进入到了容器对应的计算机
windows同理:与virtualbox中的ubuntu系统一样,但是使用docker可以快速部署ubuntu系统
exit退出容器,会把容器关掉
Docker ps -a:查看所有的容器,包括关闭的容器
Dockers rm -f docker ps -aq
:删除所有的容器
给容器取名字
Docker ps -n=1:查看最近创建的一个容器,数字可以自己定义
Docker start ubuntu01:启动已经创建好的容器,后接容器名或容器ID
Docker restart ubuntu01:重启容器
Docker stop ubuntu01:停止容器,但是内存还在,不会释放
Docker kill ubuntu01:终止进程,释放内存
启动容器并进入容器:
方法一:
docker start ubuntu01
Docker attach ubuntu01:进入容器(针对已创建的容器,如果是刚创建的容器docker run 就会进入),exit退出后,容器就会停止
方法二:
Docker start ubuntu01
Docker exec -it ubuntu01 /bin/bash:-it进入交互式终端,后面可以接容器名或容器id,/bin/bash表示使用的终端。exit退出后容器不会关闭
Docker top ubuntu01:查看容器进程
容器之间的文件上传与下载:
-
将容器文件拷贝到本机:
1)首先进入ubuntu容器,cd+空格进入root的家目录
Pwd可以查看当前目录
2)创建一个test.py文件,然后exit退出
3)Docker cp ubuntu01:/root/test.py D:/Backup:复制root目录下的test.py文件到本机D:/Backup。Docker cp +容器名:要复制的文件 + 复制到的指定路径
-
将本机文件拷贝到容器
1)docker cp D:\Backup\test2.py ubuntu01:/root :将D:\Backup下的test2.py文件复制到ubuntu01容器下的root目录
四、容器数据卷
把数据进行持久化,存储到本地,容器删除后,但是数据还在。挂载:把容器的目录挂载到本地的某个目录进行数据共享
-
在本机创建对应的文件夹,用来挂载。
-it:交互式终端
–name+容器名
-v 进行挂载:本机挂载目录:容器目录 镜像名或镜像ID 使用的终端
-
创建一个test.py文件
Exit退出后,可在本机查看到test.py文件
在本机修改test.py文件后,在容器内部查看,文件内容也是同步修改
-
删除容器后重新创建
删除
重新创建一个容器,只需要重新挂载这个目录即可。原来的文件还是存在
Docker inspect ubuntu02:获取元数据,可以在Mounts参数下查看到挂载的路径等信息
挂载类型有以下几种:
上面使用的方法是指定路径挂载
具名挂载:只需要指定卷名,会自动创建一个文件夹作为容器挂载目录,文件夹名即卷名
匿名挂载:挂载文件路径是随机的
实操:一个项目需要使用两个mysql服务器,本机已有一个mysql服务器,使用docker构建出第二台mysql服务器。Docker run 去创建:本地有镜像就直接用,没有就拉取,不用docker search 和docker pull 去拉取了。
Mysql对外提供数据库服务,所以使用-dit
-p 3316:3306 进行端口映射,把容器的3306端口映射为本机的3316端口
-v D:\docker\mysql01\conf:/etc/mysql/conf.d:挂载容器/etc/mysql/conf.d中的配置文件到本机的conf文件夹下
-v D:\docker\mysql01\data:/var/lib/mysql:对数据进行挂载
-e:环境配置。MYSQL_ROOT_PASSWORD=qwe123设置密码
最后接镜像名:可指定版本
还可以指定log日志。注意挂载配置文件的容器目录必须要指定到conf.d,不然启动容器时会找不到配置文件路径无法启动。
docker run -dit --name mysql02 -p 5000:3306 -v /home/project/jiayin/mysql/conf:/etc/mysql/conf.d -v /home/project/jiayin/mysql/data:/var/lib/mysql -v /home/project/jiayin/mysql/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=*******--restart=always mysql:8.0
进入mysql
2G内存单核cpu大概能同时开启二三十个docker容器