Docker部署

2020/03/24 Docker 共 1630 字,约 5 分钟

以镜像为基础创建容器,容器也可制作为镜像

加速

  1. 官方镜像加速 阿里云镜像加速器
  2. 代理加速
    sudo vim /etc/systemd/system/multi-user.target.wants/docker.service
    # 在[service]下添加
    Environment=HTTP_PROXY=http://你的代理
    Environment=HTTPS_PROXY=http://你的代理
    Environment=NO_PROXY=localhost,127.0.0.1
    

docker操作

  • 基本操作
     gpasswd -a 用户名 docker # 添加用户到组
     groupadd docker # 报错没有docker用户时,要创建docker用户
     newgrp docker # 更新docker用户组
     systemctl start docker # 启动docker服务
     systemctl stop docker # 停止docker服务
     systemctl restart docker # 重启docker服务
     systemctl status docker # 查看docker服务状态
     systemctl enable docker # 开机自启docker
    

容器

  1. 查看容器
    docker ps # 查看正在运行的容器
    docker ps –a # 查看所有容器
    
  2. 创建并启动容器
    docker run 参数 初始化命令
    

    参数内容:

    -i:保持容器运行。通常与 -t 同时使用。加入it这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭
    -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用
    -d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容器不会关闭
    -p:映射端口,-p 服务器端口:容器端口 -it 创建的容器一般称为交互式容器,-id 创建的容器一般称为守护式容器
    –name:为创建的容器命名
    初始化命令,一般为/bin/bash,可省略(alpine不能省略,为/bin/sh)

  3. 容器操作
    docker exec 参数 # 进入容器
    docker stop 容器名称 # 停止容器
    docker start 容器名称 # 启动容器
    docker rm 容器名称 # 删除容器
    docker inspect 容器名称 # 查看容器信息
    docker cp 本地文件路径 容器id或全称:容器路径 # 复制本地文件到容器
    docker volume prune # 删除所有无用数据卷
    
  4. 容器转为镜像
    docker commit 容器id 新镜像名
    docker save -o 压缩文件名称 新镜像名
    docker load –i 压缩文件名称
    
  5. 容器间通讯
    默认桥接网络中的容器只能通过虚拟IP地址访问其他容器
    自定义桥接网络提供DNS解析,可以通过容器的名字或是网络别名访问其他容器
    docker network create 虚拟网桥名 # 自定义桥接网络
    docker run -it --name 容器名 --network mybridge --network-alias 网络别名 镜像名
    # (--network-alias 网络别名)可省略
    

镜像

  1. 查看本地镜像
    docker images
    docker images –q # 查看所有镜像
    
  2. 删除本地镜像
    docker rmi 镜像id
    docker rmi `docker images -q` # 删除所有本地镜像
    

    修改了原镜像,不会导致在此基础上创建的镜像被修改。因为不允许修改历史镜像,只允许修改容器,而容器只可以在最上面的容器层进行写和变更

数据卷

  1. 作用:宿主机与容器、容器与容器之间进行数据同步

  2. 配置数据卷
    宿主与容器两个目录的数据同步
    docker run ... –v 宿主机目录(文件):容器内目录(文件) 镜像名 初始化命令
    
  3. 配置数据卷容器
    先创建c3,然后通过c3使c1、c2能够同步数据
    docker run –it --name=c3 –v /目录 镜像名
    docker run –it --name=c1 --volumes-from c3 镜像名 初始化命令
    docker run –it --name=c2 --volumes-from c3 镜像名 初始化命令
    

Dockerfile

文档信息

Search

    Table of Contents