泉州建设网站公司,建立网站 用英语,上海大型网站,网站程序包括数据库和网页程序我们安装完Docker之后就可以练习了.
镜像
案例1-拉取、查看镜像 1#xff09;首先去镜像仓库搜索nginx镜像#xff0c;比如 : Docker Hub Container Image Library | App Containerization 搜索我们想要拉取的镜像 , 例如: nginx 复制命令#xff1a;
docker pull nginx …我们安装完Docker之后就可以练习了.
镜像
案例1-拉取、查看镜像 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 案例2-保存、导入镜像
需求利用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命令解读
docker run 创建并运行一个容器--name : 给容器起一个名字比如叫做mn-p 将宿主机端口与容器端口映射冒号左侧是宿主机端口右侧是容器端口-d后台运行容器nginx镜像名称例如nginx:latest
这里的 -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命令解读
docker exec 进入容器内部执行一个命令-it : 给当前进入的容器创建一个标准输入、输出终端允许我们与容器交互nginxDocker 要进入的容器的名称bash进入容器后执行的命令bash是一个linux终端交互命令 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#headmetacharsetutf-8#g index.html 小结
docker run命令的常见参数有哪些
--name指定容器名称-p指定端口映射-d让容器后台运行
查看容器日志的命令
docker logs添加 -f 参数可以持续查看日志
查看容器状态
docker psdocker ps -a 查看所有容器包括已经停止的
练习
需求去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挂载数据卷
需求创建一个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挂载本地目录
容器不仅仅可以挂载数据卷也可以直接挂载到宿主机目录上。关联关系如下
带数据卷模式宿主机目录 -- 数据卷 --- 容器内目录直接挂载模式宿主机目录 --- 容器内目录
如图 语法
目录挂载与数据卷挂载的语法是类似的
-v [宿主机目录]:[容器内目录]-v [宿主机文件]:[容器内文件]
需求创建并运行一个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_serverutf8 datadir/var/lib/mysql server-id1000 编写自己的: 名称 , 端口号
docker run \--name mysqlDocker \-e MYSQL_ROOT_PASSWORDroot \-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
--name mysqlDocker 名称 -e MYSQL_ROOT_PASSWORDroot 密码-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 参数挂载文件或目录到容器中
-v volume名称:容器内目录-v 宿主机文件:容器内文-v 宿主机目录:容器内目录
数据卷挂载与目录直接挂载的
数据卷挂载耦合度低由docker来管理目录但是目录较深不好找目录挂载耦合度高需要我们自己管理目录不过目录容易寻找查看 这期就到这里!