docker search nginx                    搜索命令
 
docker images                         查看本地有哪些镜像
 
docker rmi nginx      删除镜像
 
docker save nginx > /tmp/nginx.tar.gz      导出镜像
docker load < /tmp/docker/nginx.tar.gz     导入镜像
 
 
 
ctrl  +p +q                容器后台运行,在容器里面镜像操作
docker ps                 显示正在运行的容器
docker  ps -a             显示所有的容器,包括已经关闭的容器
docker rm -f 2f34bb412230       删除正在运行的容器/--把正在运行的容器关掉
docker   exec  -it  mynginx  sh   进入容器,但是的先保证容器是开启状态
docker   logs   mynginx   -----查看日志   -f  相当于tailf 
 
 
docker run -it alpine sh     指定alpine镜像进入容器,名字自动分配
docker   run   -it   --name  mynginx  nginx   运行一个容器,指定nginx
docker   run   -it   --rm   --name   mynginx  nginx   跟上这的差别就是自动会关闭
docker    inspect   b0184efd2186    查看容器的详细信息
docker   exec  -it  mynginx  sh   进入容器,但是的先保证容器是开启状态
docker   logs   mynginx   -----查看日志   -f  相当于tailf 
 
 
例子1:
docker   run   -it   --rm   --name   myceshi  centos bash  以centos镜像为基础run一个容器
例子2:
docker   run   -p 82:80  -it   --rm   --name   myceshi  docker.io/centos_nginx bash 指定端口

进入正在运行的容器的例子:
docker   run   -it   centos(镜像名字)   bash     #执行该命令后就会进入到该容器中
 
docker  commit  -m  'add ningx images'  容器的名字  叫什么名字
docker commit -m 'add centos images'  zen_volhard(名字)  xiaoqiang/nginx(改成的名字) ---制作镜像
 
备份容器中的数据库
docker exec -it zentao-server-prod /opt/zbox/run/mysql/mysqldump -uroot -p123456 -B zentaoep >./zentaoep.sql 
恢复容器中的数据库
docker exec -it zentao-server-prod /opt/zbox/run/mysql/mysql -uroot -p123456 zentaoep <./zentaoep.sqls


制作镜像

docker  run  --name  mycentos  -it  centos  指定centos  run一个容器,在容器里下载一个nginx
docker ps -a    查看id
docker  commit  -m   'my nginx'   16720d7a7f9b   centos/mynginx:v1  打包镜像
docker images  查看  
docker   run   -p 82:80  -it   --rm   --name   myceshi  docker.io/centos_nginx bash
docker   run   -d   -p 82:80   centos/mynginx:v2   nginx(命令)


端口映射

docker   run -d  -P  nginx  ------>  -P自动分配的意思
docker run   -d   -p   81:80   nginx  ------> -p(小p)---指定映射的端口


 数据-可以实现文件互享


方法一:docker run -it --name volumes-test1 -v /data centos   默认挂载到本地
cd /var/lib/docker/volumes/b9f823f8476f3f538c8345c6644401693aee0d8f9a4af4256d05e13f68243733/_data
挂载到宿主机的这个目录
1. 你是怎么知道呢?
docker   inspect   293156021e6a     --------->查看详细信息
docker   inspect 4f8fd974238d|grep volumes
方法二:docker  run  -it  -v /opt:/opt centos   ------->指定挂载到宿主机的/opt目录下
        默认宿主机本地目录会把容器里面目录覆盖掉



数据卷容器

容器之互连
#首先,创建一个数据卷容器dbdata,并在其中创建一个数据卷挂载到/dbdata:
docker run -ti -v /dbdata --name dbdata docker.io/centos 
 
#接着我们可以在其他容器中使用–volumes-form来挂载dbdata容器中的数据卷,例如创建db1和db2两个容器,并从dbdata容器挂载数据卷
docker run -ti --volumes-from dbdata(指定你要挂载到的容器的名字,会自动识别该容器的volumes) --name db1 docker.io/centos
docker run -ti --volumes-from dbdata(指定你要挂载到的容器的名字,会自动识别该容器的volumes) --name db2 docker.io/centos
 
总结:在其中的一个容器的/dbdata 目录中创建文件,另外两个也可以看到


 Dockerfile 构建

docker常用操作命令汇总_docker



[root@localhost opt]# tree Dockerfile/
Dockerfile/
└── nginx
    ├── Dockerfile
    └── index.html
 
[root@localhost opt]# cat Dockerfile/nginx/Dockerfile 
#This is docker file
#VERSION 1
#Author: Luqiang Jiang
 
#基础的镜像
FROM docker.io/centos  
 
#Maintainer
MAINTAINER jiangxiaoqiang.com    #维护者信息
 
#Commands
RUN rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm   #在容器里干点什么
 
RUN yum install -y nginx # #在容器里干点什么
 
RUN echo 'daemon off;' >>/etc/nginx/nginx.conf
 
EXPOSE 80
 
CMD ["nginx"]
 
#把这个文件放到哪里
ADD index.html /usr/share/nginx/html/
#WORKDIR 目录  #例如编译安装的时候,你需要进入一个目录,像cd
 
做完之后启动镜像
docker build -t <build完之后显示的名称> .
docker   run   -p 82:80  -it   --rm   --name dockerfile dockerfile bash
docker exec -it 34552cf197a1 /bin/bash

docker常用操作命令汇总_docker_02

容器互联

docker  run --name web1 -d -p 80:80 centos/mynginx:v2 nginx
docker  run --name web2  --link web1 -d -p 8080:80 centos/mynginx:v3 nginx
进入docker exec -it web2 sh      web2容器
172.17.0.2 web1  e80dfbbf0562
172.17.0.3 f6f81c1359a8
 
sh-4.2# ping -c 1 web1
PING web1 (172.17.0.2) 56(84) bytes of data.
64 bytes from web1 (172.17.0.2): icmp_seq=1 ttl=64 time=0.099 ms


跨主机互联

vim /usr/lib/systemd/system/docker.service
1、 192.168.58.0/24
2、192.168.158.1/24
systemctl daemon-reload
systemctl start docker
systemctl status docker
 
route add  -net  192.168.158.0/24  gw  eth0