跳转到内容
新建笔记

基本使用

(1) docker pull "images" #拉取镜像
(2) docker images 或 docker image ls #显示镜像
(3) docker pull ubuntu #拉取 ubuntu 镜像
(4)docker run --name envls -d -it -v E:\Docker\ubuntu20.04\:\home ubuntu:20.04 #创建 ubuntu 容器,-i:交互式操作 t:表示使用终端,在创建完成后, -v:表示映射;共享宿主主机,就是和宿主主机文件映射
docker run --name envls -it --net=host -v C:\Users\28581_000\Desktop\Docker\ubuntu20.04LTS:\hmoe ubuntu #容器和宿主机共享 Network namespace
-p:设置 port
docker run --name envls -d -it -p 8282:80 -v E:\Docker\ubuntu20.04\:\home ubuntu:20.04
---
docker ps
docker ps -a
docker start container_name
docker attach contain_name
docker stop container_name
docker rm -f container_name or contain_ID
docker exec -it app_learn /bin/
有dockerfile
# 运行以下命令以构建 Docker 镜像:
docker build -t <image_name> .
#等待镜像构建完成后,可以运行以下命令以创建容器:
docker run -it <image_name> /bin/
'''
在Docker构建命令docker build -t <image_name> .中,-t标志用于为生成的Docker镜像指定名称和可选标记。
<image_name>参数指定要为图像指定的名称,命令末尾的.表示构建上下文,即包含Dockerfile的目录。
-t标志可以多次使用,以指定图像的附加标记,允许您对Docker镜像进行版本控制。
例如,命令docker build -t my-image:1.0 -t my-image:latest .将创建具有两个标记的镜像:my-image:1.0和my-image:latest。:latest标记通常用于表示镜像的最新版本。
'''

docker 容器在启动的时候,如果不指定端口映射参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的。亦可使用 Dockerfile 文件中的 EXPOSE 指令来配置。

端口映射可使用-p、-P 来实现:

  • -p 指定要映射的端口,一个指定端口上只可以绑定一个容器
  • -P 将容器内部开放的网络端口随机映射到宿主机的一个端口上

端口映射支持的格式:

ip:hostport:containerport #指定ip、指定宿主机port、指定容器port
ip::containerport #指定ip、未指定宿主机port(随机)、指定容器port
hostport:containerport #未指定ip、指定宿主机port、指定容器port

端口的映射有以下五种方法:

一、将容器暴露的所有端口,都随机映射到宿主机上。

例如:(不推荐使用)

终端窗口
docker run -p -it ubuntu /bin/

二、将容器指定端口随机映射到宿主机一个端口上。

例如:

终端窗口
docker run -p80 -it ubuntu /bin/

以上指令会将容器的 80 端口随机映射到宿主机的一个端口上。

三、将容器指定端口指定映射到宿主机的一个端口上。

例如:

终端窗口
docker run -p 8000:80 -it ubuntu /bin/

以上指令会将容器的 80 端口映射到宿主机的 8000 端口上。

四、将容器 ip 和端口,随机映射到宿主机上。

终端窗口
docker run -p 192.168.0.100::80 -it ubuntu /bin/

以上指令会将容器的 ip192.168.0.100 和 80 端口,随机映射到宿主机的一个端口上。

五、将容器 ip 和端口,指定映射到宿主机上。

终端窗口
docker run -p 192.168.0.100:8000:80 -it ubuntu /bin/

以上指令会将容器的 ip192.168.0.100 和 80 端口,映射到宿主机的 8000 端口。

示例:

终端窗口
#将nginx的80端口映射到宿主机的800端口上
docker run -d -it -p 800:80 nginx

查看映射端口配置

终端窗口
docker port container_ID #容器ID
#结果输出
80/tcp -> 0.0.0.0:800
终端窗口
 安装完之后,在容器内开启8889的端口防火墙:
 sudo /sbin/iptables -I INPUT -p tcp --dport 8889 -j ACCEPT

容器还在运行,只是你意外地断开了与容器的连接,可以通过以下步骤重新连接到容器:

终端窗口
docker ps
docker attach <container_id_or_name>
# 如果不确定容器的状态,或者想要查看在断开连接后发生了什么,可以查看容器的日志
docker logs <container_id_or_name>