Docker:经常使用命令大全 [七]

 1、docker的命令的解释

一、命令解释

docker run -d -p 80:80 nginx

run (建立并运行一个容器)
-d 放在后台
-p 端口映射
nginx docker镜像的名字

二、配置docker镜像加速

vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}

systemctl restart docker

三、docker容器是一种软件的打包技术,接下来咱们体验一下

一、传统编译安装nginx:html

官网下载Nginx源码包wget 
tar解压源码包
建立Nginx用户 
安装依赖包
编译安装三部曲configure,make,make install
修改nginx配置文件
启动nginx

二、docker容器mysql

docker run -d -p 80:80 nginx

2、镜像经常使用命令

一、搜索镜像:

docker search

选镜像的建议:
1,优先考虑官方
2,starts数量多linux

二、获取镜像:

docker pull(push)

镜像加速器:阿里云加速器,daocloud加速器,中科大加速器,Docker 中国官方镜像加速:https://registry.docker-cn.comnginx

docker pull centos:6.8(没有指定版本,默认会下载最新版)
docker pull daocloud.io/huangzhichong/alpine-cn:latest

扩展:查询docker镜像全部版本https://hub.docker.com/r/library/sql

三、查看删除导出

一、查看镜像docker

docker images

二、删除镜像json

docker rmi 例子:docker image rm centos:latest

三、导出镜像centos

docker save 例子:docker image save centos > docker-centos7.4.tar.gz
docker save mysql:5.7> mysql-5.7.tar.gz

四、导入镜像bash

docker load 例子:docker load -i docker-centos7.4.tar.gz

3、容器经常使用命令

一、运行一个容器

docker run -d -p 80:80 nginx:latest
run (建立并运行一个容器)
-d 放在后台
-p 端口映射
nginx:latest docker镜像的名字和版本
还有不少其余的参数

docker run == docker create + docker start

二、进入到容器

进入容器的目的:排错,调试网络

进入容器的方法:

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
例子:	
docker exec -it 容器id或容器名字 /bin/bash

docker attach [OPTIONS] CONTAINER
例子:
docker attach 容器id或容器名字

nsenter(安装yum install -y util-linux 弃用)

三、中止删除容器命令

一、中止容器

docker stop CONTAINER_ID

二、杀死容器

docker kill container_name

三、查看容器列表

docker ps
docker ps –a

docker ps –a  -l

四、删除容器

docker rm

五、批量删除容器

docker rm -f `docker ps -a -q`

四、要获取全部容器名称及其IP地址只需一个命令。

docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)

若是使用docker-compose命令将是:

docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

五、显示容器的全部IP

docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

4、容器网络访问经常使用命令

docker run -it --name centos6 centos:6.8 /bin/bash
-it 分配交互式的终端
--name 指定容器的名字
/bin/sh 覆盖容器的初始命令

--cpus 指定cpu的数量
--memory 限定内存的大小
-h 指定容器的主机名

docker的本质是:在隔离的环境运行的一个进程

因此:docker容器内的第一个进程必须一直处于前台运行的状态(必须夯住),不然这个容器,就会处于退出状态!

一、运行容器为何要使用端口映射?

默认,状况下,容器使用的ip是172.17.0.0/16网段的,外界的用户只能访问宿主机的10.0.0.0/24网段,

没法访问172.17.0.0/16网段。咱们运行容器的目的:是但愿运行在容器中的服务,可以被外界访问,

这里就涉及到了外网10.0.0.0/24到容器内网172.17.0.0/16网段的转换,因此须要作端口映射

二、指定映射(docker 自动添加一条iptables规则实现端口映射)

-p hostPort:containerPort
-p ip:hostPort:containerPort 
-p ip::containerPort(随机端口)
-p hostPort:containerPort:udp
-p 81:80 -p 443:443 能够指定多个-p 

三、随机映射

docker run -P (随机端口)

5、数据卷经常使用命令

一、数据卷的做用:

1:持久化容器运行过程当中产生的数据文件
2:实现多个容器间的文件共享。

正常状况下,删除容器,容器中全部的文件也会被删除

二、数据卷经常使用命令

一、建立一个数据卷

docker volume create

二、查看数据卷列表

docker volume ls

三、删除一个数据卷

docker volume rm

四、查看一个数据卷的属性

docker volume inspect

三、docker数据卷运用一

docker volume create luoahong

docker run -d -p 80:80 -v luoahong:/usr/share/nginx/html nginx:latest

cd /var/lib/docker/volumes/luoahong/_data/
rm -f *
wget https://www.qstack.com.cn/xiaoniaofeifei.zip
unzip xiaoniaofeifei.zip

docker run -d -p 81:80 -v luoahong:/usr/share/nginx/html nginx:latest
docker run -d -p 82:80 -v luoahong:/usr/share/nginx/html nginx:latest

四、把宿主机的目录挂载到容器中

cd /opt
mkdir xiaoniao
cd xiaoniao/
wget https://www.qstack.com.cn/xiaoniaofeifei.zip
unzip xiaoniaofeifei.zip

重点

docker run -d -p 83:80 -v /opt/xiaoniao:/usr/share/nginx/html nginx:latest
相关文章
相关标签/搜索