Docker(二)常用命令:创建镜像image、启动容器container、删除容器、进入容器

1.创建dockerfile

这里面的东西是自己写的。

FROM node:8.4:该 image 文件继承官方的 node image,冒号表示标签,这里标签是8.4,即8.4版本的 node。
COPY . /app:将当前目录下的所有文件(除了.dockerignore排除的路径),都拷贝进入 image 文件的/app目录。
WORKDIR /app:指定接下来的工作路径为/app。
RUN npm install:在/app目录下,运行npm install命令安装依赖。注意,安装后所有的依赖,都将打包进入 image 文件。
EXPOSE 3000:将容器 3000 端口暴露出来, 允许外部连接这个端口。

2.构建镜像image

根据Dockerfile,会在执行build命令时,自动依赖该Dockerfile来生成image,-t参数用来指定 image 文件的名字,后面还可以用冒号指定标签。如果不指定,默认的标签就是latest。最后的那个点表示 Dockerfile 文件所在的路径,上例是当前路径,所以是一个点。此时会有一大堆东西自动安装,很快。

$ docker image build -t feed_bert:v1 .
# 在本机看到这个 image 文件
$ docker image 

3.创建容器container

运行feed_bert:v1 这个image 文件。会从 image 文件,生成一个容器实例。容器实例就是容器文件。-it参数:容器的 Shell 映射到当前的 Shell,然后在本机窗口输入的命令,就会传入容器。

$ sudo docker container run -it feed_bert_embedding:v1 /bin/bash
root@66d80f4aaf1e:/app#

feed_bert_embedding:v1:image 文件的名字(如果有标签,还需要提供标签,默认是 latest 标签)。
/bin/bash:容器启动以后,内部第一个执行的命令。这里是启动 Bash,保证用户可以使用 Shell。
# 在本机的另一个终端窗口 列出本机正在运行的容器
$ docker container ls
# 列出本机所有容器,包括终止运行的容器
$ docker container ls --all

命令手动终止容器:

$ docker container kill [containID]

删除指定的容器文件(如果容器还在运行,则删不掉容器)

$ docker container rm [containerID]

也可以使用docker container run命令的--rm参数,在容器终止运行后自动删除容器文件。

run后面的--name用来控制启动后,进程的名字,如果不传入这个参数,则会随机生成一个名字。

(bert) [op_dev@kvm embedding]$ docker run --network host --name feed_bert --restart=always -d feed_bert:v1 bash
08a4ef23a24ec3ce383da6fab330de58936258830f566c97ed81ffaf4dededdf
(bert) [op_dev@kvm embedding]$ docker ps
CONTAINER ID   IMAGE                    COMMAND         CREATED         STATUS                                  PORTS     NAMES
08a4ef23a24e   feed_bert_embedding:v1   "bash run.sh"   7 seconds ago   Restarting (1) Less than a second ago             feed_bert

4.run 进入container

(bert) [op_dev@kvm embedding]$ docker ps
CONTAINER ID   IMAGE                    COMMAND       CREATED       STATUS        PORTS     NAMES
18c480f53403   feed_bert:v1   "/bin/bash"   3 hours ago   Up 3 hours              sad_roentgen
91dc43468e90   qunlp:v1                 "/bin/bash"   3 days ago    Up 47 hours             sad_mestorf
(bert) [op_dev@kvm embedding]$ docker exec -it 18c480f53403 bash
[root@18c480f53403 app]#

5.进入容器

docker起服务后,进入bash。docker exec 后边可以跟多个参数,这里主要说明 -i -t 参数。只用 -i 参数时,由于没有分配伪终端,界面没有我们熟悉的 Linux 命令提示符,但命令执行结果仍然可以返回。当 -i -t 参数一起使用时,则可以看到我们熟悉的 Linux 命令提示符。如果从这个 stdin 中 exit,不会导致容器的停止。

(bert) [op_dev@kvm embedding]$ docker exec -it feed_bert bash
[root@kvm app]#

6.删除镜像

注意点:

1. 删除前需要保证容器是停止的  stop
2. 需要注意删除镜像和容器的命令不一样。 docker rmi ID  ,其中 容器(rm)  和 镜像(rmi)
3. 顺序需要先删除容器,再删除镜像

一.查看镜像

(bert) [op_dev@kvm embedding]$ docker images
REPOSITORY                               TAG              IMAGE ID       CREATED         SIZE
<none>                                   <none>           37b975515171   18 hours ago    1.29GB
feed_bertg                      v1               0a4b7ab9de6c   19 hours ago    4.97GB

我们要删除feed_bert这个镜像

二. 查询容器

-a有没有运行的容器,都会展示出来

(bert) [op_dev@kvm embedding]$ docker container ls -a
CONTAINER ID   IMAGE                    COMMAND       CREATED        STATUS        PORTS     NAMES
24644498c456   feed_bert:v1   "/bin/bash"   19 hours ago   Up 19 hours             upbeat_jackson

三.看看容器是否运行,如果在运行,则杀掉进程

(bert) [op_dev@kvm embedding]$ docker ps
CONTAINER ID   IMAGE                    COMMAND       CREATED        STATUS        PORTS     NAMES
24644498c456   feed_bert:v1   "/bin/bash"   19 hours ago   Up 19 hours             upbeat_jackson

如果不停止运行容器,直接rm容器id是什么样子呢?会告诉你,删除容器前先停掉容器

(bert) [op_dev@kvm1 embedding]$ sudo docker rm 24644498c456
Error response from daemon: You cannot remove a running container 24644498c4568541f7962ff49cf44b147082334464cc08af80bd375aa52b235c. Stop the container before attempting removal or force remove

杀掉进程:

(bert) [op_dev@kvm embedding]$ sudo docker kill 24644498c456
24644498c456
(bert) [op_dev@kvm embedding]$ 

在看容器的进程,此时已经没有运行的进程了了

(bert) [op_dev@kvm embedding]$ docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
(bert) [op_dev@kvm embedding]$

容器的情况:从status可以看到,两分钟前已经exit了

(bert) [op_dev@kvm embedding]$ docker container ls -a
CONTAINER ID   IMAGE                    COMMAND                  CREATED        STATUS                       PORTS     NAMES
24644498c456   feed_bert:v1   "/bin/bash"              19 hours ago   Exited (137) 2 minutes ago             upbeat_jackson

四.删除容器文件:

(bert) [op_dev@kvm embedding]$ sudo docker container rm 24644498c456
24644498c456

此时容器文件已经没有了

(bert) [op_dev@kvm embedding]$ docker container ls -a
CONTAINER ID   IMAGE                    COMMAND                  CREATED        STATUS                      PORTS     NAMES

五.删除image文件

(bert) [op_dev@kvm embedding]$ docker images
REPOSITORY                               TAG              IMAGE ID       CREATED         SIZE
feed_bert                         v1               0a4b7ab9de6c   9 days ago      5.94GB

(bert) [op_dev@kvm embedding]$ sudo docker rm 0a4b7ab9de6c
Error: No such container: 0a4b7ab9de6c
(bert) [op_dev@kvm embedding]$ sudo docker rmi 0a4b7ab9de6c
Untagged: feed_bert:v1
Deleted: sha256:0a4b7ab9de6c55c2fffa93e71f260155e9509af7ee47a8d2fc3dd88b1d6f46d3
Deleted: sha256:dfe993dafcc4f23320ceba0fc8d538b1b1b0182b84fd78b55d620d618433bcc6
Deleted: sha256:2c1a9e48b99899ccd9c5e3718ae7848abd996e84e3f5b6ab05b9ab4b8d9723b3
Deleted: sha256:a2584f9ad1c460759423cc9c9510c9fdf36ad48d475402f57e61f21a7a1b520d
Deleted: sha256:2783b2d5dc902828a8e42ad165b5ce8de7059ff6b54923b74d0765ebcac9a2bc
(bert) [op_dev@kvm embedding]$ docker images
REPOSITORY                               TAG              IMAGE ID       CREATED         SIZE

已经删除完毕。

7.docker退出容器不关闭容器

如果要正常退出不关闭容器,请按Ctrl+P+Q进行退出容器.一定要按照顺序按这三个键。

 

参考:

1.https://yeasy.gitbook.io/docker_practice/container/attach_exec


 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 启动容器的命令是 `docker run`。例如,启动一个名为 `my-container` 的容器,可以使用以下命令: ``` docker run --name my-container image_name ``` 其中,`image_name` 是你要启动容器镜像的名称。你可以使用其他选项来配置容器,例如,指定容器使用的端口、挂载数据卷等等。 ### 回答2: Docker 是一种开源的容器化平台,可以帮助用户在容器中快速部署和运行应用程序。在启动容器时,需要使用 Docker 提供的命令来指定容器的配置和运行参数。 首先,我们需要通过以下命令拉取所需的镜像: ``` docker pull 镜像名称:标签 ``` 接下来,我们可以使用以下命令创建并运行容器: ``` docker run [选项] 镜像名称 [命令] [参数] ``` 其中,选项可以包括: - `-d`:后台运行容器 - `-p`:指定容器与宿主机之间的端口映射 - `-v`:指定容器与宿主机之间的目录挂载 - `--name`:指定容器名称 例如,以下命令可以创建并运行一个名为 "mycontainer" 的容器,使用镜像为 "ubuntu:latest",在后台运行,并将容器的 80 端口映射到宿主机的 8080 端口: ``` docker run -d -p 8080:80 --name mycontainer ubuntu:latest ``` 这样,容器就成功创建并运行起来了。 此外,我们还可以使用其他的 Docker 命令来管理容器,例如: - `docker start 容器名称`:启动已经被停止的容器 - `docker stop 容器名称`:停止正在运行的容器 - `docker restart 容器名称`:重新启动容器 - `docker rm 容器名称`:删除容器 - `docker ps`:查看正在运行的容器 - `docker ps -a`:查看所有容器,包括已经停止运行的 通过这些命令,我们可以方便地管理和控制 Docker 容器的运行。 总而言之,通过使用 Docker启动容器命令,我们可以轻松地创建、运行和管理容器,让应用程序在容器中以高效和可移植的方式运行。 ### 回答3: Docker是一种容器化平台,可以将应用程序和其依赖项打包并运行在独立的容器中。要启动容器,我们需要使用docker run命令。 docker run命令的基本语法如下: ``` docker run [options] <image_name> [command] ``` 其中,image_name是要使用的镜像的名称。options是可选的参数,用于控制容器的行为。command是在容器中要执行的命令。 例如,要启动一个名为 "my-container" 的容器,可以运行以下命令: ``` docker run --name my-container <image_name> ``` 这将基于指定的镜像创建一个新的容器,并自动启动容器。 如果需要在容器中执行特定的命令,可以在docker run命令后添加command选项。例如,运行以下命令以在容器内部启动一个bash终端: ``` docker run -it --name my-container <image_name> /bin/bash ``` 在这个命令中,-it选项允许我们与容器的bash终端进行交互。 还可以使用其他选项来配置容器的行为。例如,使用-p选项来指定将容器的端口映射到主机的端口: ``` docker run -p 8080:80 <image_name> ``` 这将将容器的端口80映射到主机的端口8080。 总之,要启动一个Docker容器,我们使用docker run命令,并使用相关的选项和参数来配置容器的行为。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值