docker基本的操作命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker基本的操作命令相关的知识,希望对你有一定的参考价值。
在脑海中构思一张逻辑图:
容器 Container
镜像:image
仓库;Repository:
私有仓库:registry
docker文件:Dockerfile
以image为中心:
1.docker pull 《镜像名》 从镜像仓库拉取镜像,(不指定版本,默认拉取latest标签的)
2.docker push 《镜像名》从本地的镜像上传到镜像仓库
3.docker save -o <镜像包.tar> 《镜像》把镜像导出到本地(在本地查看) -o 等于 output -o 大于 >
4.docker load -i <镜像包.tar> 根据本地镜像包导入镜像 -i 小于 <
5.docker run -itd --name 《容器名》 《镜像》 把镜像制作成容器
6.docker commit 《镜像名》 《容器》把容器制作成镜像
![]
1.docker search 《查找的镜像名 》 查找镜像
2.docker images查看镜像
3.查看正在运行的容器: docker ps
4.查看所有容器加-a: docker ps -a
5.删除镜像:docker rmi <镜像名>
6.删除容器:docker rm <容器名>
可以根据前面的id号,或者他的名进行删除。
强制删除(加-f)
docker rm test -f
如果删除镜像只删除名称的话,是不影响容器的运行的,因为镜像根本没有被删除。Docker中有缓存机制。
强制删除(开启,关闭)所有容器(生产环境严禁使用)
docker ps -a -q | xargs docker rm -f
(start,stop)
开启,关闭
停止容器运行
docker stop test
启动容器
docker start test
运行一个容器
docker run -it --name test2 busybox:latest
-i:可交互
-t:伪终端
-d:后台运行
--name:给容器命名
- -restart=always:始终保持运行,(随着docker开启而运行)总是正在运行
进入一个容器
docker exec -it test2 /bin/sh
docker attach test5
操做区别:exec进入方式需要添加-i -t选项,后面还需要给容器一个shell环境
但attach就不需要这么麻烦。
Exec进入方式:如果执行exit退出,容器仍然保持运行。
Attach:如果执行exit退出,容器会关闭。如果想要保持容器不被关闭,可以使用键盘,c t r l+p c t r l+q可以实现。
本质上的区别:exec进入的方法,会产生新的进程
attach不会生产新的进程。
基于上述知识,测试实验:
1)基于Centos:7 镜像运行一个容器,并且,在这个容器内部署nginx服务
将镜像制作为tar包
docker save -o centos.tar centos:7
查看镜像
docker images
导入nginx包
docker run -itd --name lbs --restart=always centos:7
docker cp nginx-1.14.0.tar.gz lbs:/root
进入容器lbs
docker exec -it lbs /bin/bash
安装依赖和容器需要的编译服务
yum -y install gcc pcre pcre-devel openssl openssl-devel zlib zlib-devel
yum -y install make
创建一个用户但不给他编译安装的权限
useradd -M -s /sbin/nologin nginx
解压nginx
tar zxf nginx-1.14.0.tar.gz
进入编译安装目录
cd nginx-1.14.0
编译安装
./configure --prefix=/usr/local/nginx --user=nginx --group=nignx
make && make install
链接
ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
启动
nginx
进入html目录
cd /usr/local/nginx/html/
Echo进入文字
echo lbs6666666666666 > index.html
查看有那个软件,或命令支持后面的命令
yum provides ip
安装支持网络的服务
yum -y install net-tools
访问本地ip nginx的web服务
curl 172.17.0.2
2)将运行完成的容器,制作成一个镜像,然后再根据此镜像运行一个容器,保证两个容器的主页面内容是一样的。
把容器制作成镜像(可移植)
docker commit lbs lbs:12-10
查看镜像
Docker images
用刚创建的镜像,创建容器lbs12并进入
docker run -it --name lbs12 lbs:12-10
启动nginx服务
Nginx
访问本地ip
3)将此镜像导出到docker02上,在docker02上根据此镜像运行一个容器,测试访问界面内容。
将刚创建的镜像制作为tar包
docker save -o lbs.tar lbs:12-10
导入到第二台docker
scp lbs.tar root@192.168.1.20:/root
根据本地镜像包导入镜像
docker load -i lbs.tar
查看镜像
Docker images
创建名为lbs的容器并进入
docker run -it --name lbs lbs:12-10
启动nginix
nginx
Ifconfig
访问本地nginx web服务
注意:根据dockerfile也可生成镜像
将镜像导入到第二台docker虚拟机,也可以创建私有仓库。
以上是关于docker基本的操作命令的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段15——git命令操作一个完整流程