4. 创建 Docker 容器

使用 docker create 命令可以创建容器,但是不启动此容器。手续可以通过 docker start 启动该容器。

docker create 命令

命令格式

docker create [选项] 镜像名[:标签]或镜像ID [命令] [参数...]

docker create 命令的选项和 docker run 命令的选项基本一致,但 docker create 没有 -d 选项,因为此容器并不运行。

示例

使用 docker create 创建 mysql 程序,然后使用 docker start 命令运行此容器。

weimingze@mzstudio:~$ sudo docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
weimingze@mzstudio:~$ sudo docker create \
    --name mysql_server \
    -p 3306:3306 \
    -e MYSQL_ROOT_PASSWORD=weimingze.com \
    -v /home/weimingze/mysql_vol/data:/var/lib/mysql \
    -v /home/weimingze/mysql_vol/logs:/var/log/mysql \
    --restart=on-failure:2 \
    mysql
04bc8f62cabb22ac69d1976079ed3358acf589ab97e5b05654723249063dde8f
weimingze@mzstudio:~$ sudo docker ps -a
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS    PORTS     NAMES
04bc8f62cabb   mysql     "docker-entrypoint.s…"   4 seconds ago   Created             mysql_server
weimingze@mzstudio:~$ sudo docker start mysql_server
mysql_server
weimingze@mzstudio:~$ sudo docker ps -a
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS         PORTS                                                  NAMES
04bc8f62cabb   mysql     "docker-entrypoint.s…"   31 seconds ago   Up 4 seconds   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql_server
weimingze@mzstudio:~$

当然使用 docker create 创建 mysql_server 容器时,容器的状态是 Created,然后使用 docker start 运行容器后,容器的状态变为 Up(运行状态)。