一、关于docker 镜像 、容器、仓库之间的关系 镜像(Image): 类似于虚拟机 的镜像 容器(Container): 类似于操作系统(或者说是独立的软件), 由镜像可以创建大量的容器. 仓库(Repository) : 存储镜像的仓库,存储着各种各样的镜像 如果我们需要运行nginx,mysql,redis这一个个的软件(容器),我们需要对应的镜像,镜像从何而来呢? 你可以自己制作,也可以直接从仓库中获取别人写好的镜像就可以了. 二、docker 镜像
2.1 搜索镜像
docker search nginx // docker search [image] // 搜索nginx镜像2.2 下载镜像
docekr pull nginx // docker pull [image:[tag]] // 默认下载laster 版本 也就是最后一个版本的nginx2.3 查看搜素镜像
docker images2.4 删除镜像
// 删除名为ngixn 的镜像 docker rmi nginx // 删除镜像ID docker rmi 562d384073b5 // docker rmi [image ID] // 批量镜像 docker rmi 562d384073b5 fcf076ac0126 8363bddde211 // docker rmi [image ID] [image ID] ... 三、docker容器3.1 运行容器
docker run --name nginx_container -p 8080:80 -v ./nginx/www:/usr/share/nginx/html nginx // docker run [-dit] [--name container_name] [-p local_port:container_port] [-v local_dir:container_dir] [image[:tag]] // -d 后台运行 // -it 交互式运行 // --name 容器名 // -p 本地端口 8080 映射至 容器80端口 // -v 将./nginx/www 挂载至容器的/usr/share/nginx/html 目录 // run 启动 // nginx nginx镜像3.2 后台运行
docker run -d nginx // -d 后台运行3.3 交互式运行
docker run -it nginx /bin/bash // -it 交互式运行 // /bin/bash 用bash交互3.4 已交互式运行时的退出于守护进程
ctrl + d // 直接退出,容器也会终止 ctrl + p +q // 守护进程方式退出3.5 查看容器的日志
docker log [container_ID] //docker log d86dc3983fc73.6 查看容器情况
docker ps a //查看所有容器 docker ps l // 查看运行中容器的id docker port [container_ID] // 查看容器的端口映射3.7 启动容器
// 启动容器 docker start [container_name | container_ID] // 重启容器 docker restart [container_ID]3.8 停止容器
docker stop [containr_name | container_ID]3.9 (批量)删除容器
docker rm [container_ID] [container_ID] // docker rm d86dc3983fc7 // 删除一个容器 // docker rm d86dc3983fc7 0b18e9cd782c // 删除两个3.10 查看容器信息
// 查看简单的信息 docker top [container_ID | container_name] // 查看更详细的底层信息 docker inspect [container_ID | container_name]3.11 进入容器
docker attach [container_ID] // 这种方式进入容器 操作都是同步的,切一旦ctrl+d就会容器就结束了 .一般不用这种方式的 docker exec -it [container_ID] /bin/bash // 另启一个进程的方式进入容器 // -it 交互式 // 用bash 方式3.12 导出容器
docker export [container_ID] > name.tar3.13 导入容器
//导入并重新命名 docker import [name.tar | url] > [REPOSITORY[:TAG]] // 直接导入 docker import [name.tar | url] 四、docker仓库4.1 创建私有仓库
docker run -d -p 5000:5000 --restart=always --name registry -v $HOME/Docker/Registry:/var/lib/registry registry // --restart=always 表示总是启动的,挂掉后会重启 // deamon.json 添加 { "insecure-registries":[127.0.0.1:5000] }4.2 推出镜像至私有的仓库
docker tag [image_name] 127.0.0.1/jmz/nginx:v1 // 此时你会发现的docker images 中多了一个127.0.0.1/jmz/nginx 镜像 docker push 127.0.0.1/jmz/nginx:v1 // 此时镜像已推送至自己本地的私有仓库中了4.3 拉取私有仓库中的镜像
docker pull 127.0.0.1:5000/jmz/nginx:v14.4 docker hub
如果你自己有docker hub 账号的话 你可以通过 docker login 登录自己的账号 自己制作的镜像推至到自己的docker hub 账号中