1、安装好 Docker ,记得启动,否则无法使用:
# systemctl start docker #设置开机自动启动 # systemctl enable docker
2、国外完整被墙的原因,国外的 Docker 仓库可能无法正常访问,增加国内仓库源:
# vim /etc/docker/daemon.json 新增: { "registry-mirrors" : ["https://registry.docker-cn.com"] } #然后重启 docker # systemctl restart docker
3、常用命令(https://www.runoob.com/docker/docker-command-manual.html)
#交互方式启动容器 docker run -i: 以交互模式运行容器,通常与 -t 同时使用; -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用; --name="nginx-lb": 为容器指定一个名称; #查看容器状态 docker ps -a :显示所有的容器,包括未运行的。 -l :显示最近创建的容器。 #查看容器信息 docker inspect 容器名称/ID #杀掉一个运行中的容器。 docker kill -s :向容器发送一个信号 #启动一个或多个已经被停止的容器 docker start [OPTIONS] CONTAINER [CONTAINER...] #停止一个运行中的容器 docker stop [OPTIONS] CONTAINER [CONTAINER...] #重启容器 docker restart [OPTIONS] CONTAINER [CONTAINER...] #删除停止的容器 docker rm [OPTIONS] CONTAINER [CONTAINER...]
4、守护式容器
# 交互容器运行 docker run -i -t IMAGE /bin/bash #变成守护式容器 #通过 Ctrl+P Ctrl+Q 退出 bash,进入后台运行 #再次进入交互式容器 docker attach ID/NAME #eixt 关闭交互式容器 #启动守护式容器 docker run --name=dc1 -d php #查看守护式容器信息:通过查看容器日志 docker logs [OPTIONS] CONTAINER -f : 跟踪日志输出 --since :显示某个开始时间的所有日志 -t : 显示时间戳 --tail=1|all :仅列出最新N条容器日志 #在运行中的容器内启动新进程 docker exec [OPTIONS] CONTAINER COMMAND [ARG...] -d :守护式: 在后台运行 -i :即使没有附加也保持STDIN 打开 -t :分配一个伪终端 #停止守护式容器 docker stop NAME (发信号给容器) docker kill NAME (直接停止容器,杀掉一个运行中的容器)
#查看本地 docker 信息 docker info #查看镜像 docker images [OPTIONS] [REPOSITORY[:TAG]] -a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层); --digests :显示镜像的摘要信息; -f :显示满足条件的镜像; --format :指定返回值的模板文件; --no-trunc :显示完整的镜像信息; -q :只显示镜像ID。 docker images 查看已安装的镜像 repository 仓库 registry 仓库存储服务 仓库名:TAG = 镜像名 #查看镜像详细信息 docker inspect [OPTIONS] NAME|ID [NAME|ID...] 此命令也可查看容器信息 #删除镜像 docker rmi [OPTIONS] IMAGE [IMAGE...] #删除 ubuntu 仓库所有镜像 docker rmi $(docker images -q ubuntu)
搜索、下载、推送镜像
#搜索镜像 docker search [OPTIONS] TERM --automated :只列出自动构建类型的镜像; --no-trunc :显示完整的镜像描述; -s :列出 star 数不小于指定值的镜像。 #下载镜像 docker pull [OPTIONS] NAME[:TAG|@DIGEST] -a :拉取所有 tagged 镜像 --disable-content-trust :忽略镜像的校验,默认开启 #修改仓库存储服务地址,加快安装,避免被墙 使用 --registry-mirror 选项 1、修改 /etc/default/docker 2、添加 DOCKER_OPTS = "--registry-mirror=http://f1361db2.m.daocloud.io" 3、重启容器服务 service docker restart #将本地的镜像上传到镜像仓库,要先登陆到镜像仓库 docker push [OPTIONS] NAME[:TAG] --disable-content-trust :忽略镜像的校验,默认开启
构建镜像
#从容器创建一个新的镜像 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] -a :提交的镜像作者; -c :使用Dockerfile指令来创建镜像; -m :提交时的说明文字; -p :在commit时,将容器暂停。 #通过 Dockerfile 构建镜像 docker build 通过 Dockerfile 文件构建
技巧
#进入容器里面 docker exec -i -t 容器名 /bin/bash