Docker基本操作

目录

镜像操作

 镜像操作命令

 案例

 练习

容器操作

 运行一个Nginx容器

命令解读

拓展

案例

总结

练习 运行redis容器

数据卷(容器数据管理)

 数据卷的基本语法

案例

作用:

挂载数据卷

案例

案例        创建并运行Mysql容器,并进行挂载

数据卷挂载和文件目录挂载区别


镜像操作

镜像名称一般分两部分组成:[repository] : [tag]

在没有指定tag时,默认是latest,代表最新版本的镜像

Docker基本操作_第1张图片

 镜像操作命令

Docker基本操作_第2张图片

 案例

1、首先去镜像仓库搜索nginx镜像,比如DockerHub

2、根据查看到的镜像名称,拉取自己需要的镜像,通过命令:docker  pull  nginx,我拿nginx为例

3、通过命令:docker  images 查看拉取到的镜像

总结:

docker images
docker rmi
docker pull
docker push
docker save
docker load

 练习

Docker基本操作_第3张图片

 熟悉命令及操作流程以及踩坑

容器操作

Docker基本操作_第4张图片

 运行一个Nginx容器

去DockerHub查看Nginx容器的运行命令

Docker基本操作_第5张图片

咱们使用这种,上面的比较复杂。

命令解读

docker run :创建并运行一个容器

-name:给容器起一个名称

-p:将主机端口和容器端口映射,前面为主机端口

-d:后台运行

nginx:代表你要运行的镜像名称

拓展

docker logs:查看容器日志,想要跟踪日志的话,添加 -f 参数

docker ps,查看容器状态

案例

1、进入容器

docker exec -it mn bash

Docker基本操作_第6张图片

2、修改html文件内容

进入html文件所在目录

cd /usr/share/nginx/html 

修改,这里不能使用vi、vim命令了,docker把部分命令阉割了

sed -i 's#Welcome to nginx#白金翰欢迎您#g' index.html sed -i 's###g' index.html

总结

docker ps 查看容器状态 ,但是默认只可以看到运行中的,想要查看所有的加上 -a参数。

docker rm 删除容器,但是不能删除运行中的容器,加上 -f 参数就可以强制删除。

exec命令可以进入容器修改文件,但是在容器内修改文件是不推荐的。

练习 运行redis容器

1、查看dockerHub中的redis镜像文档的帮助信息

2、执行命令

docker run --name redis -p 6379:6379 -d redis redis-server --appendonly yes

3、进入容器

docker exec -it redis redis-cli

4、下面的添加数据就和以前的一样了

使用set 、get就可以

数据卷(容器数据管理)

容器与数据耦合的问题

1、不便于修改

2、数据不可复用

3、升级维护困难

Docker基本操作_第7张图片

 数据卷是一个虚拟目录,指向宿主机文件系统中的某个目录。

Docker基本操作_第8张图片

 数据卷的基本语法

docker volume [COMMAND]

create         创建一个colume

inspect        显示一个或多个colume的信息

ls                列出所有的volume

prune        删除未使用的volume

rm              删除一个或多个指定的volume

案例

docker volume create       html        创建数据卷

docker volume     ls        查看所有数据

docker volume        inspect html        查看数据卷详细信息卷

作用:

将容器与数据分离,解耦合,方便操作容器内数据,保证数据安全

挂载数据卷

我们在创建容器时,可以通过 -v 参数来挂载一个数据卷到某个容器目录

docker run        \创建并运行容器

 --name mn        \给容器起个名字

-v html :/root/html        把html数据卷挂载到容器内的/root/html这个目录中

\

-p 8080:80        把宿主机的8080端口映射到容器内的80端口

nginx         \镜像名称

案例

创建容器并挂载数据卷到容器内的html目录

docker run --name mn -v htm:/usr/share/nginx/html -p 80:80 -d nginx

如果容器运行时不存在,数据卷会被自动创建出来

案例        创建并运行Mysql容器,并进行挂载

目录挂载与数据库挂载的语法是类似的。

-v [宿主机目录]:[容器内目录]

-v [宿主机文件]:[容器内文件]

1、加载mysql镜像。

2、创建数据目录文件        /tmp/mysql/data

3、创建配置文件目录        /tmp/mysql/conf

        注意:

挂载/tmp/mysql/data到mysql容器内数据存储目录

挂载/tmp/mysql/conf/hmy.cnf到mysql容器的配置文件

设置MySQL密码

数据卷挂载和文件目录挂载区别

Docker基本操作_第9张图片

 数据卷挂载耦合度低,由docker来管理目录,但是目录较浅,不好找

目录挂载耦合度高,需要我们自己管理目录,不过目录容易管理查看

你可能感兴趣的:(docker,容器,运维)