docker的基本命令
下载镜像:
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”
挂载NFS共享存储
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=网桥名