Docker的基本操作
1.镜像名称1、镜像的组成1、镜名称一般分两部分组成:[repository]:[tag]。2、在没有指定tag时,默认是latest,代表最新版本的镜像这里的mysql就是repository,5.7就是tag,合一起就是镜像名称,代表5.7版本的MySQL镜像。2、镜像命令常用命令docker pull##从官方拉取镜像---docker pull mysqldocker load##加载压缩
·
1.镜像名称
1、镜像的组成
1、镜名称一般分两部分组成:[repository]:[tag]。
2、在没有指定tag时,默认是latest,代表最新版本的镜像
这里的mysql就是repository,5.7就是tag,合一起就是镜像名称,代表5.7版本的MySQL镜像。
2、镜像命令
常用命令
docker pull ## 从官方拉取镜像
---docker pull mysql
docker load ## 加载压缩包为一个镜像
格式:docker load -i [保存的目标文件名称]
示例:docker load -i mysql.tar
docker save ## 保存镜像为一个压缩包
格式:docker save -o [保存的目标文件名称] [镜像名称]
示例:docker save -o mysql.tar mysql:latest
docker images ## 查看拉取到的镜像
docker ps [-a] ## 查看启动的镜像 [-a] 包含未启动的
docker rmi nginx:latest ## 删除本地的镜像
2.容器操作
2.1.容器相关命令
容器保护三个状态:
- 运行:进程正常运行
- 暂停:进程暂停,CPU不再运行,并不释放内存
- 停止:进程终止,回收进程占用的内存、CPU等资源
其中:
- docker run:创建并运行一个容器,处于运行状态
- docker pause:让一个运行的容器暂停
- docker unpause:让一个容器从暂停状态恢复运行
- docker stop:停止一个运行的容器
- docker start:让一个停止的容器再次运行
- docker rm:删除一个容器
2.1.创建并运行一个容器
创建并运行nginx容器的命令:
docker run --name containerName -p 80:80 -d nginx
命令解读:
- docker run :创建并运行一个容器
- –name : 给容器起一个名字,比如叫做mn
- -p 将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口
- -d:后台运行容器
- nginx:镜像名称,例如nginx
进入Nginx容器
docker exec -it mn bash
命令解读:
- docker exec :进入容器内部,执行一个命令
- -it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
- mn :要进入的容器的名称
- bash:进入容器后执行的命令,bash是一个linux终端交互命令
2.2.小结
1、docker run命令的常见参数有哪些?
- –name:指定容器名称
- -p:指定端口映射
- -d:让容器后台运行
2、查看容器日志的命令:
- docker logs
- 添加 -f 参数可以持续查看日志
3、查看容器状态:
- docker ps
- docker ps -a 查看所有容器,包括已经停止的
3.数据卷(容器数据管理)
3.1.什么是数据卷?
数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。
3.2.数据集操作命令
数据卷操作的基本语法如下:
docker volume [COMMAND]
docker volume命令是数据卷操作,根据命令后跟随的command来确定下一步的操作:
【create 】创建一个volume
示例: docker volume create html
【inspect 】显示一个或多个volume的信息
示例: docker volume inspect html
【ls 】列出所有的volume
示例:docker volume ls
【prune 】删除未使用的volume
【rm 】删除一个或多个指定的volume
3.3.挂载数据卷
命令:
docker run \
--name mn \
-v html:/root/html \
-p 8080:80
nginx \
`-v html:/root/htm` :把html数据卷挂载到容器内的/root/html这个目录中
3.4.给nginx挂载数据卷
① 创建容器并挂载数据卷到容器内的HTML目录
docker run --name mn -v html:/usr/share/nginx/html -p 80:80 -d nginx
② 进入html数据卷所在位置,并修改HTML内容
# 查看html数据卷的位置
docker volume inspect html
# 进入该目录
cd /var/lib/docker/volumes/html/_data
# 修改文件
vi index.html
3.5.给MySQL挂载本地目录
容器不仅仅可以挂载数据卷,也可以直接挂载到宿主机目录上。关联关系如下:
· 带数据卷模式:宿主机目录 --> 数据卷 ---> 容器内目录
· 直接挂载模式:宿主机目录 ---> 容器内目录
语法:
目录挂载与数据卷挂载的语法是类似的:
- -v [宿主机目录]:[容器内目录]
- -v [宿主机文件]:[容器内文件]
需求:创建并运行一个MySQL容器,将宿主机目录直接挂载到容器
实现思路如下:
1)从DockerHub拉取mysql镜像
`docker pull mysql`
2)创建目录/tmp/mysql/data
`mkdir - p /tmp/mysql/data`
3)创建目录/tmp/mysql/conf,将课前资料提供的hmy.cnf文件上传到/tmp/mysql/conf
`mkdir - p /tmp/mysql/conf`
4)去DockerHub查阅资料,创建并运行MySQL容器,要求:
① 挂载/tmp/mysql/data到mysql容器内数据存储目录
② 挂载/tmp/mysql/conf/hmy.cnf到mysql容器的配置文件
③ 设置MySQL密码
`docker run
-d --name mysql-test01
-p 3307:3306
--privileged=true
-v /tmp/mysql/data:/var/lib/mysql
-v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf
-e MYSQL_ROOT_PASSWORD=1234 mysql:latest`
更多推荐
已为社区贡献1条内容
所有评论(0)