image 相关的命令:
# 将 image 文件从仓库抓取到本地
docker image pull imageName
# 列出本机的所有 image 文件。
docker image ls
# 删除 image 文件
docker image rm imageName
基于镜像文件创建交互式容器,并挂载到自定目录
docker run -it --name 自定义容器名 -p 8080:8080 -v /your localdirectory/:/Container directory/ imageName:tags /bin/bash
eg:
docker run -it --name test -p 8080:8080 -v /home/ts/Desktop/workspace/DOCKER:/home d8c99aebeea1 /bin/bash
# -i 保持容器运行
# -t 创建交互式容器,为容器分配一个伪终端
# -p 端口映射,-p 宿主端口:容器端口
# -d 创建后台运行创建容器,以守护模式运行容器
# /bin/bash 进入容器的初始化指令
# exit 退出容器
container 相关命令
# 列出本机正在运行的容器,使用 docker container ls 或 docker ps
docker container ls
# 列出本机所有容器,包括终止运行的容器,加上 --all 获取 -a
docker container ls -a
# 停止本机正在运行的容器
docker container stop container_name/container_id
#或者
docker stop container_name/container_id
# 删除某个容器
docker rm container_name/container_id
启动容器已经创建的容器
docker start container_name/container_id
交互的方式打开容器
docker attach container_name/container_id
网络
docker network connect
用于将docker容器连接到某个网络中,或者与其他容器建联
eg:
docker network connect 网桥 容器
在这里插入代码片
文件拷贝
从容器里面拷文件到宿主机
在宿主机里面执行以下命令
docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径
从宿主机拷文件到容器里面
在宿主机里面执行如下命令
docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径
保存更改到容镜像
docker commit container_name/container_id my_image:tag
提交容器并在原来的镜像的基础上添加容器中新曾的内容
将容器生成镜像
docker commit containerid/imagename
Docker镜像保存save
docker save imageName -o /your path/xxx.tar
加载镜像
docker load -i xxx.tar
提交远程仓库
# 规范镜像标签
docker tag 镜像ID 用户名称/镜像源名:新的标签名
#镜像名称不规范上传会被拒绝
#denied: requested access to the resource is denied
#登陆,根据提示输入用户名与密码
docker login
# 上传镜像
docker push imagename
DOCKERFILR
FROM:指定基础镜像,必须为第一个命令
MAINTAINER: 维护者信息
RUN:构建镜像时执行的命令
ADD:将本地文件添加到容器中,tar类型文件会自动解压
CMD:构建容器后调用,也就是在容器启动时才进行调用
EXPOSE:指定于外界交互的端口
VOLUME:用于指定持久化目录
WORKDIR:工作目录
运行dockerfile文件
docker build -t name .
-t 是给镜像命名 . 是基于当前目录的Dockerfile来构建镜像
docker-compose
#在启动容器前构建服务镜像
docker-compose build
#在后台运行服务容器
docker-compose up -d
docker-compose.yml
# 基于Dockerfile或指定的镜像,执行构建任务
build: ./frontend
# 从指定的镜像中启动容器
image:xxx
# 添加环境变量
environment:
# 暴露端口,但不映射到宿主机,只被连接的服务访问
expose: - "8000"
# 覆盖容器启动后默认执行的命令
command:
# 映射端口,(如果使用的容器端口小于60可能会得到错误得结果)
ports: - 12345:80
# 链接到其它服务的中的容器
links: - web:web
# 挂载一个目录或者一个已存在的数据卷容器
volumes
# HOST:CONTAINER 格式
# HOST:CONTAINER:ro, 数据卷是只读的
史上讲解最好的 Docker 教程,从入门到精通
Docker 教程
vscode docker 插件
Remote - Containers