当前位置:首页 > Docker > 正文内容

Docker常用命令

4个月前 (08-13)Docker832

Docker常用命令    

运行某个 image 文件:

sudo docker container run 镜像名称xxx 或者
docker run --name mynginx -d nginx:latest #使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。

注意:docker container run命令会从 image 文件,生成一个正在运行的容器实例,如果发现本地没有指定的 image 文件,

就会自动从仓库自动抓取。所以docker image pull命令并不是必需的步骤。

对于那些不会自动终止的容器,可以使用docker container kill 命令手动终止:

sudo docker container kill [容器containID]

Docker服务启动:

# service 命令的用法
sudo service docker start

# systemctl 命令的用法
sudo systemctl start docker

删除安装包:

sudo apt-get purge docker-ce

删除镜像、容器、配置文件等内容:

sudo rm -rf /var/lib/docker

清理掉所有处于终止状态的容器

sudo docker container prune

使用 docker port bf08bxxx(容器id) 或 docker port namexxx(容器名称) 来查看容器端口的映射情况

使用 docker logs [ID或者名字] 可以查看容器内部的标准输出。

sudo docker logs -f bf08bxxx

-f: 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出。

使用 docker top 来查看容器内部运行的进程

sudo docker top bf08bxxx(或容器名称)

使用 docker inspect 来查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。

sudo docker inspect bf08bxxx(或容器名称)

使用 docker stop/start  bf08bxxx 停止/启动容器

sudo docker ps -l #查询最后一次创建的容器

使用 docker rm 命令来删除不需要的容器

sudo docker rm wizardly_chandrasekhar

删除容器时,容器必须是停止状态,否则会报错。

使用 docker rmi 命令删除镜像,比如我们删除 ubutun 镜像:

sudo docker rmi ubutun

镜像更新提交    

当我们从 docker 镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。

 1、从已经创建的容器中更新镜像,并且提交这个镜像

 2、使用 Dockerfile 指令来创建一个新的镜像

更新镜像之前,我们需要使用镜像来创建一个容器。

uos@root:~$ docker run -t -i uos:15.10 /bin/bash
uos@e218ed11ee1:/#

在运行的容器内使用 apt-get update 命令进行更新。

在完成操作之后,输入 exit 命令来退出这个容器。

此时 ID 为 e218ed11ee1 的容器,是按我的需求更改的容器。可以通过命令 docker commit 来提交容器副本。

uos@root:~$ docker commit -m="uos update" -a="zhoubotong" e218ed11ee1 zhoubotong/uos:v2

各个参数说明:

  • -m: 提交的描述信息

  • -a: 指定镜像作者

  • e218ed11ee1:容器 ID

  • zhoubotong/uos:v2: 指定要创建的目标镜像名

我们可以使用 docker images 命令来查看我们的新镜像 zhoubotong/uos:v2,这里不再阐述。

镜像构建    

使用命令 docker build , 从零开始来创建一个新的镜像。我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。

文件不存在请新建:touch Dockerfile

uos@root:~$ cat Dockerfile  
FROM    centos:6.7 
MAINTAINER      Fisher "zpt@uniontech.com" 
RUN     /bin/echo 'root:123456' |chpasswd 
RUN     useradd uos
RUN     /bin/echo 'uos:123456' |chpasswd 
RUN     /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local 
EXPOSE  22 
EXPOSE  80 
CMD     /usr/sbin/sshd -D

每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。

第一条FROM,指定使用哪个镜像源

RUN 指令告诉docker 在镜像内执行命令,安装了什么。。。

然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。

uos@root:~$ docker build -t uos/centos:6.7 .

参数说明:

  • -t :指定要创建的目标镜像名

  • . :Dockerfile 文件所在目录,也可以指定Dockerfile 的绝对路径

完后可以使用docker images 查看创建的镜像已经在列表中存在。

镜像标签设置    

使用 docker tag 命令,为镜像添加一个新的标签。

uos@root:~$ docker tag e218ed11ee1 zhoubotong/centos:dev

docker tag 镜像ID,这里是 e218ed11ee1,用户名称、镜像源名(repository name)和新的标签名(tag)。

使用 docker images 命令可以看到,ID为e218ed11ee1的镜像多了一个标签。

uos@root:~$ docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
zhoubotong/centos       6.7                 e218ed11ee1        1 hours ago         190.6 MB
zhoubotong/centos       dev                 e218ed11ee1        1 hours ago         190.6 MB
列出本机所有容器,包括终止运行的容器
docker images ls --all

网络查看    

该命令可用于列出主机上与Docker关联的所有网络。

uos@root:~$ docker network ls

image.png

如果要查看与Docker相关的网络的更多详细信息,可以使用Docker network inspect 命令.

uos@root:~$ docker network inspect networkname(网络名称)
  • networkname  -  需要检查的网络的名称。比如要输出有关网络的所有详细信息。

  • uos@root:~$ docker network inspect etcdnet

上面大致就介绍这么多了。


    扫描二维码推送至手机访问。

    版权声明:本文由周伯通的博客发布,如需转载请注明出处。

    本文链接:https://www.zhoubotong.site/post/68.html

    分享给朋友:
    返回列表

    没有更早的文章了...

    下一篇:Docker如何镜像加速

    相关文章

    Docker如何镜像加速

    Docker如何镜像加速

            在使用Docker 下载镜像时,如果不配置镜像加速,下载镜像会比较慢,因为国内从 DockerHub 拉...

    docker compose 部署etcd

    docker compose 部署etcd

    安装docker-compose这里就不介绍了,直接进入正题:创建etcd数据目录(根据需要可自行修改)mkdir -p /app/download/etcd/data切换到自定义...

    发表评论

    访客

    看不清,换一张

    ◎欢迎参与讨论,请在这里发表您的看法和观点。