1.Docker安装及基础命令
yum install wget -y
rm -rf /etc/yum.repos.d/*
wget -O /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel-7.repo
http://mirrors.aliyun.com/repo/epel-7.repo
wget -O /etc/yum.repos.d/docker-ce.repo
https://mirrors.aliyun.com/docker- ce/linux/centos/docker-ce.repo
yum install docker-ce -y
systemctl enable docker.service
systemctl start docker.service
配置阿里云镜像加速器:
//在/etc/docker/daemon.json
粘贴阿里云加速源
{
"registry-mirrors": ["https://5cooms55.mirror.aliyuncs.com"]
}
可以通过命令docker info 查看docker详细信息。
2.镜像管理
搜索镜像
docker search centos //在dockerhub上面搜索
下载镜像
docker pull nginx:latest //
查看镜像
docker images //查看所有的镜像
-q 只显示id
-a 全部显示
镜像标签
docker tag centos:latest mycentos:v1 //不打标签默认是latest。并且指向的是同一个镜像
镜像详细信息
docker inspect mycentos //镜像的详细信息。
查看各层创建信息
docker history nginx:latest //可以查看各层创建信息
镜像的导入与导出
导出:
docker save centos:latest -o(>) /opt/centos.tar.gz
导入:
docker load -i(<) /opt/centos.tar.gz
镜像的删除
docker rmi centos:latest //也可以通过唯一id来标识
-f //强制删除,在运行中也可以删除,通过信号量SIGKILL
-v 删除容器上的数据卷
-l
3.容器管理
创建容器:
docker create //通过create创建的容器处于停滞状态,可以用docker start命令来启动它
-d //是否在后台运行容器,默认为否
-i //保持标准输入打开
-P //通过NAT机制将容器标记暴露的端口自动映射到本地主机的临时端口
-p //指定映射到本机端口
-t //分配一个终端
-v //挂载主机上的文件卷到容器内
--rm //容器退出后是否自动删除,不能跟-d同时使用
-e //指定容器内的环境变量?
-h //指定容器内的主机名?
--name //指定容器的别名
--cpu-shares //允许容器使用cpu资源的相对权重,默认一个容器能用满一个核的cpu?
-cpuset-cpus //限制容器能使用那些cpu核心?
-m //限制容器使用的内存,单位可以是b,k,m,g
启动容器:
docker run -it centos:latest bash //通过run命令可以直接创建并启动容器 bash是指定的命令
docker ps //查看运行中的容器
-a //查看所有容器的状态
端口映射:
docker run -d -P nginx //随机端口映射从32768开始映射的
docker run -d -p 90:80 --name nginx-1 nginx:latest //小写P第一个是本机端口。--name参数指定了名称后就可以用指定的名字,不会随机创建一个并且名字不能重复
docker port nginx-1 //查看容器已经映射的端口
后台启动容器:
docker run -d centos tail -f /etc/hosts // 传递命令运行时就会先执行命令 -d参数保持后台启动
停止容器:
docker pause nginx-1 //停止可以通过unpause将状态改变可以通过ps看到状态是paused
docker unpause nginx-1 //重新运行pause的容器
docker stop nginx-1 //终止容器只能通过ps -a查看 并且状态是exit
docker start nginx-1 //重新运行stop的容器
删除容器:
docker rm -31 //通过docker ps 查看id删除
docker rm -f `docker ps -a -q` //将容器全部删除
进入容器:
atach:所有使用此方式进入容器的操作都是同步显示的且exit容器将被关闭。
docker attach 51 //进入id为51的centos且退出后容器被关闭并且操作是同步更新的
exec:执行单次命令与进入容器,退出后容器还在运行
docker -exec -it 54 /bin/bash //执行单次命令进入容器,执行完退出后。容器还在
nsenert可以根据容器的pid进入容器
docker inspect -f "{{.State.Pid}}" 1
12110
nsenter -t 12110 -m -u -i -n -p //namespaceenter
指定容器DNS:
docker run -it --rm --dns 8.8.8.8 centos bash
导入导出容器:
docker export -o /opt/centos.tar 43f //导出一个容器到文件中,不管此时这个容器是否处于运行状态
docker import /optcentos.tar mycentos:v1 //导入容器后变成镜像没有-i这个参数