docker基础

Docker学习笔记

基础

拉取镜像

$ docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]

具体的选项可以通过 docker pull --help 命令看到,这里我们说一下镜像名称的格式。

  • Docker 镜像仓库地址:地址的格式一般是 <域名/IP>[:端口号]。默认地址是 Docker Hub(docker.io)。
  • 仓库名:如之前所说,这里的仓库名是两段式名称,即 <用户名>/<软件名>。对于 Docker Hub,如果不给出用户名,则默认为 library,也就是官方镜像。

运行镜像

$ docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

常用参数及其说明

  • -d:后台运行容器(即 detached 模式)。
  • -it:交互模式运行容器,通常和 -i(保持标准输入)和 -t(分配伪终端)一起使用。
  • --name:为容器指定一个名称。
  • -p:端口映射,用于将宿主机的端口映射到容器内的端口。
  • -v:数据卷挂载,用于将宿主机目录挂载到容器中。
  • --rm:容器退出后自动删除容器。
  • -e:设置环境变量。
  • --network:指定容器使用的网络。
  • --restart:容器的重启策略,例如 alwayson-failure

例如:

$ docker run -d --name mynginx -p 8088 nginx

进入容器

$ docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
  • CONTAINER:要执行命令的容器的名字或 ID。
  • COMMAND:在容器内执行的命令。

常用参数

  • -i:保持标准输入,允许你与容器交互。
  • -t:分配一个伪终端。通常 -it 会一起使用,使得你能以交互模式在容器内执行命令。
  • -d:在后台运行命令。
  • -u:指定运行命令的用户,默认是 root

例如:

$ docker exec -it mycontainer /bin/bash

停止容器

$ docker stop [OPTIONS] CONTAINER [CONTAINER...] 

启动容器

$ docker start [OPTIONS] CONTAINER [CONTAINER...] 

删除容器

$ docker rm CONTAINERID
  • -f:强制删除

复制容器文件

docker cp [OPTIONS] SOURCE_PATH CONTAINER:DEST_PATH
docker cp [OPTIONS] CONTAINER:SOURCE_PATH DEST_PATH
  • SOURCE_PATH:源文件或目录的路径,可以是宿主机上的路径,也可以是容器中的路径。
  • CONTAINER:DEST_PATH:目标容器及其路径,表示将文件复制到容器内。
  • CONTAINER:SOURCE_PATH:表示从容器中的路径复制到宿主机。
  • DEST_PATH:目标文件或目录的路径,表示将文件复制到宿主机上。

常见用法

1. 将文件从宿主机复制到容器中

docker cp /path/to/file.txt mycontainer:/path/in/container/
  • 这条命令会将宿主机上的 /path/to/file.txt 文件复制到容器 mycontainer 中的 /path/in/container/ 路径下。

2. 将目录从宿主机复制到容器中

docker cp /path/to/directory/ mycontainer:/path/in/container/
  • 将宿主机的 /path/to/directory/ 目录及其内容复制到容器 mycontainer/path/in/container/ 路径下。

3. 将文件从容器中复制到宿主机

docker cp mycontainer:/path/in/container/file.txt /path/on/host/
  • 这条命令将容器 mycontainer 中的 /path/in/container/file.txt 文件复制到宿主机的 /path/on/host/ 路径下。

4. 将容器内的目录复制到宿主机

docker cp mycontainer:/path/in/container/ /path/on/host/
  • 将容器 mycontainer 中的 /path/in/container/ 目录及其内容复制到宿主机的 /path/on/host/ 路径下。

注意事项

  • 路径末尾的斜杠:当复制目录时,源路径末尾带有 / 的含义是“复制目录的内容”,而没有 / 则是复制整个目录及其内容。例如,/path/to/directory//path/to/directory 在复制时会有不同的行为。
  • 目标路径存在性:如果目标路径已经存在,并且是一个目录,那么文件或目录将被复制到该目录中。如果目标路径不存在,Docker 会创建它

数据卷

创建数据卷

$ docker volume create my-vol

查看所有数据卷

$ docker volume ls

DRIVER              VOLUME NAME
local               my-vol

查看指定 数据卷 的信息

$ docker volume inspect my-vol
[
    {
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/my-vol/_data",
        "Name": "my-vol",
        "Options": {},
        "Scope": "local"
    }
]

启动一个挂载数据卷的容器

$ docker run -d -P 
    --name web 
    # -v my-vol:/usr/share/nginx/html 
    --mount source=my-vol,target=/usr/share/nginx/html 
    nginx:alpine

删除数据卷

$ docker volume rm my-vol

无主的数据卷可能会占据很多空间,要清理请使用以下命令

$ docker volume prune

容器互联

新建网络

$ docker network create -d [type] [name]

常见的网络类型有:

  • bridge:默认的本地网络,适用于单主机容器间的通信。
  • host:容器共享主机的网络堆栈,适用于性能要求较高的场景。
  • none:没有网络,适用于需要完全隔离的容器。
  • overlay:适用于多主机之间的容器通信,通常用于 Docker Swarm。

查看网络

$ docker network ls

查看网络详细信息

$ docker network inspect my_network

连接容器到网络

使用 --network 参数将容器连接到特定的网络:

docker run -d --name my_container --network my_network nginx
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇