1、镜像操作
1.1 拉取、查看镜像
步骤一: 首先去镜像仓库搜索nginx镜像,比如[DockerHub]( Docker Hub Container Image Library | App Containerization ) :
步骤二: 根据查看到的镜像名称,拉取自己需要的镜像
通过命令:docker pull nginx
注:镜像名称一般分两部分组成:[repository]:[tag]。
在没有指定tag时,默认是latest,代表最新版本的镜像
步骤三: 通过命令:docker images 查看拉取到的镜像
1.2 保存、导入镜像
步骤一:利用docker xx --help命令查看docker save和docker load的语法
例如,查看save命令用法,可以输入命令:
docker save --help
步骤二:使用docker save导出镜像到磁盘 ,命令格式如下:
https://developer.aliyun.com/article/1109085
运行命令:
https://developer.aliyun.com/article/1109085
结果如图:
步骤三:使用docker load加载镜像(大家也先可以使用docker xx --help命令查看语法)
先删除本地的nginx镜像:
docker rmi nginx:latest
然后运行命令,加载本地文件:
docker load -i nginx.tar
结果:
1.3 小结
镜像操作有哪些?
查看镜像:docker images
删除镜像:docker rmi
拉取镜像:docker pull
推送镜像:docker push
保存镜像:docker save
加载镜像:docker load
2、容器操作
容器保护三个状态:
- 运行:进程正常运行
- 暂停:进程暂停,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
注:这里的-p
参数,是将容器端口映射到宿主机端口。
默认情况下,容器是隔离环境,我们直接访问宿主机的80端口,肯定访问不到容器中的nginx。
现在,将容器的80与宿主机的80关联起来,当我们访问宿主机的80端口时,就会被映射到容器的80,这样就能访问到nginx了:
记得开启端口号!(或者可以直接关闭防火墙)
1.查看防火墙状态
firewall-cmd --state
2.开启防火墙
systemctl start firewalld.service
3.开启端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
4.重启防火墙(不重启以上的设置是不会生效的)
firewall-cmd --reload
现在可以去浏览器访问一下80端口,只要出现Nginx的首页就代表成功了。
2.2 进入容器,修改文件
需求:进入Nginx容器,修改HTML文件内容,添加“点赞+关注”
进入容器。进入我们刚刚创建的nginx容器的命令为:
docker exec -it containerName bash
命令解读:
- docker exec :进入容器内部,执行一个命令
- -it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
- containerName:要进入的容器的名称
- bash:进入容器后执行的命令,bash是一个linux终端交互命令
注:容器内部会模拟一个独立的Linux文件系统,看起来如同一个linux服务器一样:
nginx的环境、配置、运行文件全部都在这个文件系统中,包括我们要修改的html文件。
进入nginx的HTML所在目录 /usr/share/nginx/html
我们执行命令,进入该目录:
cd /usr/share/nginx/html
查看目录下文件:
容器内没有vi命令,无法直接修改,我们用下面的命令来修改:
sed -i -e 's#Welcome to nginx#求个关注+点赞!#g' -e 's#<head>#<head><meta charset="utf-8">#g' index.html
我们再用浏览器访问一下:
输入exit就可以退出了
2.3 查看容器
查看正在运行的容器
docker ps
查看所有状态的容器
docker ps -a
2.4 删除容器
删除容器(不能删除正在运行的容器)
docker rm 容器的名字
强制删除
docker rm -f 容器的名字
2.5 小结
docker run命令的常见参数有哪些?
- --name:指定容器名称
- -p:指定端口映射
- -d:让容器后台运行
查看容器日志的命令:
- docker logs
- 添加 -f 参数可以持续查看日志
查看容器状态:
- docker ps
- docker ps -a 查看所有容器,包括已经停止的