下载镜像: docker pull busybox
上传镜像: docker push busybox
查看镜像: docker images
查找busybox镜像: docker search busybox
导出busybox镜像为busybox.tar docker save busybox:latest >busybox.tar
导入镜像: docker load <busybox.tar
删除镜像: docker rmi busybox
启动镜像: docker run -it centos /bin/bash
查看后台运行的容器: docker ps
只显示正在运行容器: docker ps -q
显示所有的容器,包括没有启动的: docker ps -a
显示所有的容器: docker ps -qa
查看centos镜像历史(封装过程): docker history centos
删除镜像,启动容器时删除镜像会失败,先删除容器,再删除镜像 docker stop 容器id docker rm 容器id docker rmi 镜像
修改镜像的名称和标签,默认标签为latest docker tag centos:latest cen:v1
查看镜像的底层信息: docker inspect centos
关闭容器: docker stop 容器ID
启动容器: docker start 容器ID
重启容器: docker restart 容器ID
删除容器: docker rm 容器ID 注:只能删除关掉的容器,运行中的容器无法删除
连接容器attach|exec: docker attach 容器ID 注:退出后容器自动关闭
docker exec -it 容器ID /bin/bash 退出后容器继续运行
过滤查看mac和ip地址 mac: docker inspect -f ‘{{.NetworkSettings.MacAddress}}’ 容器ID ip: docker inspect -f ‘{{.NetworkSettings.IPAddress}}’ 容器ID
不推荐一层一层手动封装 1.先启动一个纯净的镜像(以centos为例) docker run -it centos 2.对开启的容器进行修改 例如: 添加yum源 准备需要用到的基础环境
3.另存为另外一个镜像 docker commit 修改的容器ID myos:v1 注:另存镜像时容器必须关闭
4.使用Dockerfile文件创建一个新的镜像文件 Dockerfile语法格式: FROM:基础镜像 MAINTAINER:镜像创建者信息(说明) EXPOSE:开放的端口 ENV:设置环境变量 ADD:复制文件到镜像 RUN:制作镜像时执行的命令,可以有多个 WORKDIR:定义容器默认工作目录 CMD:容器启动时执行的命令,仅可以有一条CMD
创建一个Apache的镜像文件
1.创建文件夹: mkdir cc cd cc
2.创建Dockerfile文件 touch Dockerfile cp /etc/yum.repos.d/local.repo ./ vim Dockerfile
FROM myos:v1 RUN yum -y install httpd ENV EnvironmentFile=/etc/sysconfig/httpd WORKDIR /var/www/html/ //定义容器默认工作目录 RUN echo "test" > /var/www/html/index.html EXPOSE 80 //设置开放端口号 CMD ["/usr/sbin/httpd", "-DFOREGROUND"]3.创建镜像: docker build -t myos:http .
4.运行镜像: docker run -d myos:http
1.定义一个私有仓库: vim /etc/docker/daemon.json
{"insecure-registries" : ["192.168.1.10:5000"] } #使用私有仓库运行容器 指定仓库ip和端口2.重启docker 3.运行私有仓库 docker run -d -p 5000:5000 registry 4.测试 curl ip+端口 出现括号即为正确 5.给镜像仓库打标签 docker tag busybox:latest 192.168.1.10:5000/busybox:latest 6.上传镜像: docker push 192.168.1.10:5000/busybox:latest
7.另一台docker服务器运行仓库 拷贝第一台上的 /etc/docker/daemon.json 到 /etc/docker/
重启服务 查看镜像 docker images
8.查看私有仓库的镜像 " curl http://仓库的ip+仓库端口/v2/_catalog "
9.查看里面的镜像标签 “ curl http://仓库的ip:仓库的端口/v2/镜像名/tags/list”
1.配置nfs服务端 2.配置docker挂载nfs 3.进行挂载 docker run -d -p 80:80 -v /mnt/qq:/var/www/html -it myos:http -v /本地挂载后的目录:/镜像内的目录
1.新建Docker网络模型 docker network create --subnet=172.30.0.0/16 docker01 2.删除网桥 docker network rm docker01 3.查看网络 docker network list 4.网络详细信息 docker network inspect docker01 5.使用自定义网桥启动容器 docker run --network=docker01 -id nginx 6.端口映射 docker run -p 本机端口:虚拟机端口 -id nginx 7.解决ifconfig查看网桥是id的问题 docker network create 网桥名 --subnet=172.30.0.0/16 -o com.docker.network.bridge.name=网桥名