halo,大家好,这次我带来的是Docker的一些基本操作和基本命令的使用,适合刚学Docker的小白学习嘿嘿( ▽)
1.镜像操作
首先了解镜像的名称组成:
- 镜名称一般分两部分组成:[repository]:[tag]。
- 在没有指定tag时,默认是latest,代表最新版本的镜像
这里的mysql就是repository,5.7就是tag,合一起就是镜像名称,代表5.7版本的MySQL镜像。
1.镜像命令
常见的是图中的这些,其中Registry可以是共有的仓库,也可以是我们自己搭建的私有仓库,里面放的是一些镜像,类似于一个托管的地方
另外我们可以通过 --help查询相关的所有命令,例如↓↓↓↓↓↓↓↓
docker --help 查看所有命令
docker images --help列出所有关于镜像的命令操作
这里通过去DockerHub拉取nginx镜像来演示一下:
2.情景1:拉取镜像
1)首先去镜像仓库搜索nginx镜像,比如DockerHub:
2)根据查看到的镜像名称,拉取自己需要的镜像,通过命令:docker pull nginx
3)通过命令:docker images 查看拉取到的镜像
我们可以查到我们刚刚拉取的nginx镜像
3.情景2:保存导入镜像
利用docker save将nginx镜像导出磁盘,然后再通过load加载回来
查看docker save --help保存命令的格式
命令格式:
docker save -o [保存的目标文件名称] [镜像名称]
删除本地的nginx镜像然后我们加载回来nginx镜像
删除指定名称镜像
docker rmi nginx:latest
加载本地文件 -i表示读入
docker load -i nginx.tar
2.容器操作
1.容器命令
容器保护三个状态:
- 运行:进程正常运行
- 暂停:进程暂停,CPU不再运行,并不释放内存
- 停止:进程终止,回收进程占用的内存、CPU等资源
常用的命令如下:
- docker run:创建并运行一个容器,处于运行状态
- docker pause:让一个运行的容器暂停
- docker unpause:让一个容器从暂停状态恢复运行
- docker stop:停止一个运行的容器
- docker start:让一个停止的容器再次运行
- docker rm 【容器名】删除一个容器
- docker rm -f【容器名】强制删除一个容器
- docker ps -a查看所有容器详细信息
- docker logs -f【容器名】 查看日志 -f表示不需要重复刷新查看日志(持续跟踪日志) ctrl+c停止追踪
2.情景1:创建并运行一个容器
docker run --name containerName -p 80:80 -d nginx
- docker run :创建并运行一个容器
- –name : 给容器起一个名字,比如叫做dog
- -p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口 容器端口映射到宿主机端口。
- -d:后台运行容器
- nginx:镜像名称,例如nginx,不要加tag
我们在宿主机访问80端口时,这样就能访问到nginx了
3.情景2:进入容器,修改文件
进入Nginx容器,修改HTML文件内容,添加“食不食油饼”
docker ps 查询正在运行的容器
docker ps -a 查询所有的容器,没有运行的容器也会被查询到
1)进入容器。进入我们刚刚创建的nginx容器的命令为:
docker exec -it dog bash
-
docker exec :进入容器内部,执行一个命令
-
-it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
-
dog :要进入的容器的名称
-
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
3)修改index.html的内容
容器内没有vi命令,无法直接修改,我们用下面的命令来修改:
sed -i -e 's#Welcome to nginx#食不食油饼#g' -e 's#<head>#<head><meta charset="utf-8">#g' index.html
在宿主机浏览器访问
3.结语
这就是docker的简单镜像和容器命令演示,还有更复杂的,不早了,回宿舍睡觉了(ಥ_ಥ)