0%

Docker指令&& 容器使用

Docker指令&& 容器使用

镜像images

  1. 获取镜像
    1
    dock pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
  2. 运行
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16

    $ docker run -it --rm ubuntu:18.04 bash
    root@e7009c6ce357:/# cat /etc/os-release
    NAME="Ubuntu"
    VERSION="18.04.1 LTS (Bionic Beaver)"
    ID=ubuntu
    ID_LIKE=debian
    PRETTY_NAME="Ubuntu 18.04.1 LTS"
    VERSION_ID="18.04"
    HOME_URL="https://www.ubuntu.com/"
    SUPPORT_URL="https://help.ubuntu.com/"
    BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
    PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
    VERSION_CODENAME=bionic
    UBUNTU_CODENAME=bionic

docker run 就是运行容器的命令

  • -it :这是两个参数, 一个是-i 交互式操作,一个是’-t’ 终端,我们这里打算 进入bash 执行一些命令并
  • –rm:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 docker rm。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 –rm 可以避免浪费空间
  • ubuntu:18.04:这是指用 ubuntu:18.04 镜像为基础来启动容器。
  • bash:放在镜像名后的是 命令,这里我们希望有个交互式 Shell,因此用的是 bash
  • exit 退出了这个容器
列出镜像
1
2
docker images

挂载硬盘
1
docker run ... -v 主机目录:容器中的目录 ...
复制文件
1
docker cp 源目录 目标目录

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
docker images -----> 查看已下载的镜像
docker rmi 镜像名称:标签名 -----> 删除已下载镜像
docker search 镜像 -----> 从官方仓库(hub.docker.com)查找镜像
docker pull 镜像名称:标签名 -----> 标签名默认是 latest,代表最新版本。
docker pull 镜像名 ------>下载最新版
docker ps -----> 列出运行中的容器(运行中)
docker ps -a ------> 列出所有的容器(运行、未运行)
docker ps -a 查看所有的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7c291fb47b70 python:3.9 "python3" 4 minutes ago Up 4 minutes priceless_almeida
docker stop 容器名称id -----> 停止容器
docker start 容器名称id -----> 启动容器
docker start -i 容器的id --->在将一个停止的容器运行起来的同时,指定交互模式
docker restart 容器名称id -----> 重启容器
docker rm 容器id -----> 删除 已经停止运行的容器
docker rm $(docker ps -a -q) -----> 删除所有停止运行的容器 (慎用)
docker rm -f 容器的id -----> 强制删除容器 (无论是否停止运行)
docker rmi 镜像的id
docker run 镜像名字:版本 ----->创建一个容器且运行
-it --->交互模式
docker exec 执行容器中的指令

Dockerfile 参数

FROM:指定基础镜像,必须为第一个命令
MAINTAINER: 维护者信息
ENV:设置环境变量
RUN:构建镜像时执行的命令
ADD:将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget
EXPOSE:指定于外界交互的端口
VOLUME:用于指定持久化目录
WORKDIR:工作目录,类似于cd命令

案例

使用MySQL镜像

1
docker run -d --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.5

命令说明:

  • –name=mysql:为容器指定一个名称为mysql
  • -p 3306:3306:将容器的(后面的3306) 3306 端口映射到主机的(前面的3306) 3306端口。
  • -d:后台运行容器,并返回容器ID。
  • -e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码为123456。
  • mysql:5.5 要使用的镜像的名称

网络 指令

查看 网络列表
docker network ls

当我们在使用docker-compose构建服务时,会自动创建一个新的网络如下
查看这个网络中所有的容器ip以及其他信息
docker network inspect 网络id

新建一个网络
$ docker network create -d bridge my-net

运行容器连接到my-net 网络
docker run --rm -it --network my-net my_flask:1.0 bash

------ 本文结束------

欢迎关注我的其它发布渠道