docker初识

docker初识

Docker

容器与镜像的关系类似于面向对象编程中的对象与类。

Docker 面向对象
容器 对象
镜像

容器与镜像的关系

安装

参考:Ubuntu Docker 安装

docker命令

列出docker的命令帮助,在docker xx 后面 加上 --help 可以查看具体的命令用法和参数注解

cmd-help.sh
1
docker --help

创建镜像

列出所有镜像:

1
docker images -a

获取一个新的ubuntu 13.10版本镜像

1
docker pull ubuntu:13.10

查找centos镜像

1
docker search centos

删除ubuntu镜像

1
docker rmi ubuntu

创建镜像
1、从已经创建的容器中更新镜像,并且提交这个镜像
2、使用 Dockerfile 指令来创建一个新的镜像

创建容器

容器管理命令

code 操作 备注
docker ps 查看正在运行的容器
docker ps -s -a 查看当前所有容器
docker stop 容器名称 停止容器
docker restart 容器名称 重启容器
docker kill 容器名称 杀死容器
docker rm -f 镜像ID或者镜像名 删除已经停止的容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 运行容器
docker run --name mynginx -d nginx:latest 使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。
  • OPTIONS说明:
    • -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
    • -d: 后台运行容器,并返回容器ID;
    • -i: 以交互模式运行容器,通常与 -t 同时使用;
    • -P: 随机端口映射,容器内部端口随机映射到主机的端口
    • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
    • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
    • –name=”nginx-lb”: 为容器指定一个名称;
    • –dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
    • –dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
    • -h “mars”: 指定容器的hostname;
    • -e username=”ritchie”: 设置环境变量;
    • –env-file=[]: 从指定文件读入环境变量;
    • –cpuset=”0-2” or –cpuset=”0,1,2”: 绑定容器到指定CPU运行;
    • -m :设置容器使用内存最大值;
    • –net=”bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
    • –link=[]: 添加链接到另一个容器;
    • –expose=[]: 开放一个端口或一组端口;
    • –volume , -v: 绑定一个卷

example

运行一个新容器,映射至5600端口,挂载目录

1
docker run -dit -v $PWD/ql/config:/ql/config -v $PWD/ql/log:/ql/log -v $PWD/ql/db:/ql/db -v $PWD/ql/repo:/ql/repo -v $PWD/ql/raw:/ql/raw -v $PWD/ql/scripts:/ql/scripts -v $PWD/ql/jbot:/ql/jbot -p 5600:5600 --name qinglong --hostname qinglong --restart always whyour/qinglong:latest

摘录

docker镜像管理命令
查看本地镜像

docker images #查看当前机器的所有镜像

docker images –q # 查看所用镜像的id

docker search 镜像名称 #搜索镜像,网络中查找需要的镜像

docker pull 镜像名称 #从Docker仓库拉取镜像,名称:版本号

docker push 镜像名称 #推送镜像

docker rmi 镜像名称/镜像id #删除本地机器的镜像

docker rmi docker images -q # 删除所有本地镜像

docker tag 镜像名称:tag 镜像名称:tag #为一个镜像打tag

docker save {image_name} > {new_image_name}.tar #镜像打包成一个tar包

docker load < {image_name}.tar #解压一个镜像tar包

docker查看日志信息
docker logs -f 容器名称 #查看容器日志

docker info #查看docker服务的信息

docker inspect 容器名称 # 获取镜像的元信息,详细信息

与容器交互的命令
进入正在运行的容器
docker exec -it 容器ID或者容器名 /bin/bash

exec的意思是在容器中运行⼀个命令。 /bin/bash是固有写法,作用是因为docker后台必须运行一个进程,否则容器就会退出,在这里表示启动容器后启动 bash。

退出容器
exit #退出也关闭容器;

Ctrl+P+Q #退出不关闭容器

创建启动容器时,使用–v参数设置数据卷
docker run … –v 宿主机目录/文件:容器内目录/文件

数据卷宿主机的一个目录或文件

目录必须是绝对路径

如果目录不存在,会自动创建

可以挂载多个数据卷

拷贝文件
docker cp 主机文件路径 容器ID或容器名:容器路径 #宿主机文件拷贝到容器中

docker cp 容器ID或容器名:容器路径 主机文件路径 #容器文件拷贝到宿主机中

作者

zhang

发布于

2021-08-13

更新于

2023-09-19

许可协议

CC BY-NC-SA 4.0

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×