码迷,mamicode.com
首页 > 其他好文 > 详细

docker基本的操作命令

时间:2020-01-28 21:22:27      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:gcc   名称   指定   echo   部署   环境   arch   mamicode   exit   

在脑海中构思一张逻辑图:
技术图片
容器 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基本的操作命令

标签:gcc   名称   指定   echo   部署   环境   arch   mamicode   exit   

原文地址:https://blog.51cto.com/13911055/2468465

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!