目录

Docker基础使用

传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。

参考链接:https://yeasy.gitbook.io/docker_practice/https://wudaijun.com/2016/11/docker-basic/#more

使用前配置

无需sudo运行docker

sudo usermod -aG docker ${USER}
su - ${USER}

docker换源

sudo vim /etc/docker/daemon.json  
写入:
{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
然后重启docker服务即可

基本命令(参考链接

docker启动相关

启动           systemctl start docker
自启动         systemctl enable docker
守护进程重启    systemctl daemon-reload
重启docker服务  systemctl restart  docker
重启docker服务  service docker restart
关闭docker     service docker stop   
关闭docker     systemctl stop docker

镜像相关

  1. 查找镜像
docker search [ 条件 ]
# 例如查询三颗星及以上名字包含alpine的镜像
docker search -f=stars=3 alpine
  1. 获取镜像
docker pull [ 仓库 ]:[ tag ]
仓库格式为 [仓库url]/[用户名]/[应用名] , 除了官方仓库外的第三方仓库要指定 url, 用户名就是在对应仓库下建立的账户, 一般只有应用名的仓库代表 官方镜像, 如 ubuntu、tomcat 等, 而 tag 表示镜像的版本号, 不指定时默认为 latest
# 获取alpine Linux 的镜像
docker pull alpine
  1. 删除本地镜像
docker rmi [ 镜像名 or 镜像 id ]
  1. 上传镜像
//登录账号
docker login
docker tag "imgID" aidenpearce/imageName:version
docker push aidenpearce/imageName:version

官方仓库很慢,可用阿里云仓库

容器相关

  1. 创建、启动容器并执行相应的命令

    docker run [ 参数 ] [ 镜像名 or 镜像 id ] [ 命令 ]
    docker run -itd --name [自定义名称] -v [/home/config:/etc/config] -p 80:80 [容器名称] 
    docker exec -it [容器] bash
    
  2. 查看运行中的容器

    docker ps
    docker ps -a 选项可查看所有的容器
    
  3. 开启/停止/重启容器

    # 关闭容器(发送SIGTERM信号,做一些'退出前工作',再发送SIGKILL信号)
    docker stop anyesu-container
    # 强制关闭容器(默认发送SIGKILL信号, 加-s参数可以发送其他信号)
    docker kill anyesu-container
    # 启动容器
    docker start anyesu-container
    # 重启容器
    docker restart anyesu-container
    
  4. 删除容器

    docker rm [ 容器名 or 容器 id ]  #删除已停止运行的容器
    可以指定多个容器一起删除, 加 -f 选项可强制删除正在运行的容器
    
  5. 查看容器中正在运行的进程

    docker top [ 容器名 or 容器 id ]
    
  6. 显示容器硬件资源使用情况

    docker stats [ 选项 ] [ 0个或多个正在运行容器 ]
    
  7. 主机与容器之间拷贝文件

    docker cp container_name_or_id:/etc/config  /home/file
    

构建镜像

  • 从Dockerfile构建镜像:docker build

    docker build -t [ 镜像名 ]:[ tag ] -f [ DockerFile 名 ] [ DockerFile 所在目录 ]
    
  • 从容器构建镜像:docker commit

    • docker commit [容器] [镜像名称:版本]

目录挂载

无论宿主机还是容器中的挂载目录是否存在,docker可以自己主动创建出多级目录

-v /home/ubuntu/a/b/c:/root/x/y/z

docker网关

docker0 172.17.0.1