在油管看到的一个非常新手友好的教程, 在实际的实践过程中流畅地梳理了Docker使用过程中需要的命令和知识点, 本文即学习视频的笔记
视频链接:Docker Tutorial for Beginners [FULL COURSE in 3 Hours ] Youtube/TechWorld with Nana
P.S. 本文也会发布在个人微信公众号By Coding, 是(欢)本(迎)人(关)哦(注)~
基础命令 拉取镜像
docker pull
docker images
启动容器(镜像)docker run
ctrl+C
后台启动docker run -d
“d” == “detach”
docker stop
docker stop
docker ps -a
启动容器docker start
docker stop
docker run
# 如果docker没有找到对应版本的镜像, 则会自动执行pull拉取对应版本的镜像到本地, 然后执行start
容器端口与主机端口
docker ps中的PORTS显示的是主机端口
容器监听端口相同没有影响, 但每一个容器只能绑定唯一的主机端口
docker run -p<主机端口>:<容器端口>
外部访问 主机 容器
请求------>3200----->3000
查看日志
docker logs
只查看最后部分
docker logs
实时查看
docker logs
- 此时可以手动输入分隔(比如一行------)
- 下一条log就会在分隔下面自动刷新出来
docker run --name
docker run -d -p
docker exec -it
- “it” == “interactive terminal”
- 进入以后就可以使用ls, cd之类的功能了
exit(对, 直接在终端输入这个就行, 和Python命令行的同理)
关于run和start的区别
- run用于从镜像启动新容器; start用于启动已存在的容器
- start其实是"restart"(一个被stop的容器)
分行写命令
docker run -d
>-p >-e >--net >--name
Docker 网络 列表展示网络
docker network ls
创建Docker网络docker network crate
docker rm
docker rmi
Docker-compose
配置文件:
内容:
version:''
service:
mongodb:
image:
ports: :
environment:
-
使用docer-compose
docker-compose -f
- “f” == “file”
- “up” == “run/start”
- 同理 “down” == “stop”
当这样停止容器时, 由compose创建的网络会被销毁, 等待下次启动时重新创建
配置启动顺序
(这个原视频中没有讲, 等自己实验出来了再补上~)
Dockerfile
文件格式是Dockerfile, 不需要后缀, D要大写
FROM制作镜像ENV RUN mkdir -p /home/ COPY ./home/ CMD["", ""]
docker build -t
docker login
命令只需使用一次就可以从同一个仓库多次pull/push
地址名/镜像名:标签
向仓库推送docker push
- 如果向AWS仓库推送则还需要一些前置配置, 详情请看原视频
docker tag
- 这里就是在改地址名
Docker Volume
一共有三种方式创建Volume, 分别是
- Host Volumes
- Anonymous Volumes
- Named Volumes(推荐!)
docker run -v /home/
<主机目录>:<容器内目录>Anonymous Volumes
docker run -v //
docker run -v name://
在docker-compose中使用Volume
version: ''
service:
:
image:
ports:
-:
volumes:
- :///…/data
# 这是容器里的路径
:
...
...
对所有容器内的Volume在主机上建立一个持久化的空间
volumes:
:
- 也就是说主机上的一个Volume可以对应多个容器的Volume
- 这有利于不同服务间的数据访问(如果它们之间需要共享数据的话)
- 向Docker声明在本地主机上开辟一个存储空间
driver: local完整的文档示例
version: '1'
service:
:
image:
ports:
-:
volumes:
- :///…/data
:
...
...
volumes:
:
driver: local
Docker Volumes在不同主机上的默认路径
- Windows: C:ProgramDatadockervolumes
- Linux: /var/lib/docker/volumes
- Mac: /var/lib/docker/volumes,
- 但在Mac OS中的路径还有些不同, 也许需要尝试: screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64/linux/tty
关于screen命令
Linux screen命令用于多重视窗管理程序。
screen为多重视窗管理程序。此处所谓的视窗,是指一个全屏幕的文字模式画面。通常只有在使用telnet登入主机或是使用老式的终端机时,才有可能用到screen程序。 - 菜鸟教程



