赞
踩
我们安装完Docker之后就可以练习了.
1)首先去镜像仓库搜索nginx镜像,比如 : Docker Hub Container Image Library | App Containerization
搜索我们想要拉取的镜像 , 例如: nginx
复制命令:
docker pull nginx
输入命令:
docker pull nginx
默认情况是最新版本 docker pull nginx:latest , 也可以拉取自己想要的版本, 例如 : docker pull nginx:5.7
通过命令:docker images 查看拉取到的镜像
docker images
需求:利用docker save将nginx镜像导出磁盘,然后再通过load加载回来
1)利用docker xx --help命令查看docker save和docker load的语法
例如,查看save命令用法,可以输入命令:
docker save --help
命令格式:
docker save -o [保存的目标文件名称] [镜像名称]
2)使用docker save导出镜像到磁盘
运行命令:
docker save -o nginx.tar nginx:latest
结果如图:
3)使用docker load加载镜像
先删除本地的nginx镜像:
docker rmi nginx:latest
然后运行命令,加载本地文件:
docker load -i nginx.tar
结果:
需求:去DockerHub搜索并拉取一个Redis镜像
目标:
1)去DockerHub搜索Redis镜像
2)查看Redis镜像的名称和版本
3)利用docker pull命令拉取镜像
4)利用docker save命令将 redis:latest打包为一个redis.tar包
5)利用docker rmi 删除本地的redis:latest
6)利用docker load 重新加载 redis.tar文件
创建并运行nginx容器的命令:
docker run --name containerName -p 80:80 -d nginx
命令解读:
这里的 -p 参数,是将容器端口映射到宿主机端口。
默认情况下,容器是隔离环境,我们直接访问宿主机的80端口,肯定访问不到容器中的nginx。
现在,将容器的80与宿主机的80关联起来,当我们访问宿主机的80端口时,就会被映射到容器的80,这 样就能访问到nginx了:
创建并运行nginx
docker run --name nginxDocker -p 8080:80 -d nginx:latest
查看所有容器和运行状态
docker ps
打开浏览器输入(虚拟器ip地址:端口号)
这里查看日志需要一个查看的内容, 我们输入我们运行时起的名称 例如 : nginxDocker
我们可以看到日志中有一次GET请求
我们刷新一下页面再次查看日志中有两次请求.
在docker logs 中有一个参数 -f 跟踪日志
ctrl + c 结束跟踪日志.
需求:进入Nginx容器,修改HTML文件内容,添加“苏麟梦想之地字节跳动”
提示:进入容器要用到docker exec命令。
步骤:
1)进入容器。进入我们刚刚创建的nginx容器的命令为:
docker exec -it nginxDocker bash
命令解读:
2)进入nginx的HTML所在目录 /usr/share/nginx/html 容器内部会模拟一个独立的Linux文件系统,看起来如同一个linux服务器一样:
nginx的环境、配置、运行文件全部都在这个文件系统中,包括我们要修改的html文件。 查看DockerHub网站中的nginx页面,可以知道nginx的html目录位置在 /usr/share/nginx/html 我们执行命令,进入该目录:
cd /usr/share/nginx/html
我们查看一下index.html
3)修改index.html的内容
容器内没有vi命令,无法直接修改,我们用下面的命令来修改:
sed -i -e 's#Welcome to nginx#苏麟真的c#g' index.html
sed -i -e 's#<head>#<head><metacharset="utf-8">#g' index.html
docker run命令的常见参数有哪些?
查看容器日志的命令:
查看容器状态:
需求:去DockerHub搜索并拉取一个Redis镜像并运行,切支持数据持久化
目标:
1)去DockerHub搜索并拉取一个Redis镜像
2)查看Redis帮助信息
3)利用docker run命令运行容器
拉取代码
docker pull redis
运行容器
docker run --name rs -p 6379:6379 -d redis redis-server --save 60 1 --loglevel warning
用redis可视化工具连接虚拟机redis
进入redis并存储key
docker exec -it re redis-cli
查看存储的key
需求:创建一个数据卷,并查看数据卷在宿主机的目录位置
① 创建数据卷
docker volume create html
② 查看所有数据
docker volume ls
③ 查看数据卷详细信息卷
docker volume inspect html
可以看到,我们创建的html这个数据卷关联的宿主机目录为 /var/lib/docker/volumes/html/_data 目录。
需求:创建一个nginx容器,修改容器内的html目录内的index.html内容
分析:上个案例中,我们进入nginx容器内部,已经知道nginx的html目录所在位 置/usr/share/nginx/html ,我们需要把这个目录挂载到html这个数据卷上,方便操作其中的内容。 提示:运行容器时使用 -v 参数挂载数据卷
步骤:
① 创建容器并挂载数据卷到容器内的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
创建并挂载
修改内容
访问:
容器不仅仅可以挂载数据卷,也可以直接挂载到宿主机目录上。关联关系如下:
如图:
语法:
目录挂载与数据卷挂载的语法是类似的:
需求:创建并运行一个MySQL容器,将宿主机目录直接挂载到容器
实现思路如下:
1)将mysql.tar文件上传到虚拟机,通过load命令加载为镜像或者自己拉取
2)创建目录/tmp/mysql/data
3)创建目录/tmp/mysql/conf,将hmy.cnf文件上传到/tmp/mysql/conf
4)去DockerHub查阅资料,创建并运行MySQL容器,要求:
① 挂载/tmp/mysql/data到mysql容器内数据存储目录
② 挂载/tmp/mysql/conf/hmy.cnf到mysql容器的配置文件
③ 设置MySQL密码
创建文件 hmy.cnf 并把下面复制到文件内(可以在电脑上写,写完长传到linux)
[mysqld]
skip-name-resolve
character_set_server=utf8
datadir=/var/lib/mysql
server-id=1000
编写自己的: 名称 , 端口号
- docker run \
-
- --name mysqlDocker \
-
- -e MYSQL_ROOT_PASSWORD=root \
-
- -p 3396:3306 \
-
- -v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \
-
- -v /tmp/mysql/date:/var/lib/mysql \
-
- -d mysql:latest
查看连接 : 连接成功成功
docker run的命令中通过 -v 参数挂载文件或目录到容器中:
数据卷挂载与目录直接挂载的
这期就到这里!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。