docker(三) 镜像和容器经常使用命令

1、镜像操做

1.搜索镜像

能够直接在Docker Hub 直接搜索镜像,固然也可使用命令来搜索。 html

docker search 名称nginx

docker search tomcat

 

2.拉取镜像

docker pull 镜像名redis

#拉取redis3.0
docker pull redis:3.0

 

3.查看镜像列表

Docker镜像保存在/var/lib/dockerdocker

docker images
docker images -a
docker images -q(显示id)

 

4.删除镜像

docker rmi 镜像名tomcat

#删除hello-world镜像
docker rmi hello-world

#强制删除有容器依赖的镜像
docker rmi -f hello-world

2、容器操做

1.建立容器

①docker createbash

能够先经过docker create建立容器,再经过docker start启动服务器

②docker run网络

建立并启动容器(运行时容器)app

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

[OPTIONS]:阿里云

  • -d: 后台运行容器,并返回容器ID;  
  • --name="xx": 为容器指定一个名称;
  • -i:以交互模式运行容器,一般与 -t 同时使用
  • -t:为容器分配虚拟终端,容许发信号给容器。tty
  • -P: 随机端口映射;
  • -p: 指定端口映射,有如下四种格式

例子:

# 基于最新版redis镜像建立容器,命名为myredis,将主机的16379端口映射到容器内的6379端口。
docker create --name myredis -p 16379:6379 redis:latest

 

2.列出容器

docker ps [OPTIONS]

[OPTIONS]:

  • -a:显示全部容器,包括未运行的
  • -l:显示最近建立的容器
  • -n:显示最近建立的n各容器

3.启动/中止/重启容器

docker start 容器ID/容器名
docker stop  容器ID/容器名
docker restart 容器ID/容器名

 

4.删除容器

#删除容器
docker rm 容器ID/容器名

#强制删除运行中的容器
docker rm -f 容器ID/容器名
  • -f :强制删除运行中的容器
  • -l :移除容器间的网络链接,而非容器自己
  • -v :删除与容器关联的卷

 

5.在运行的容器中执行命令

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

例子:

#进入到redis容器中,并开启一个交互模式的终端
docker exec -it redis /bin/bash

#在容器mynginx中以交互模式执行容器内/root/runoob.sh脚本
docker exec -it mynginx /bin/sh /root/runoob.sh

使用ctrl + d退出容器

 

6.获取容器的日志

docker logs 容器

Options:

  • -f, 跟踪日志输出
  • -t, 显示时间戳
docker logs -f redis

 

3、上传镜像到阿里云镜像仓库

能够将本地镜像上传到Docker Hub上,也能够上传到其它服务器,例如阿里云镜像仓库。上传到hub上太慢了,这里选择上传到阿里云镜像仓库中。

能够参考阿里云官网的教程:上传本地镜像

1.先要有阿里云帐号,登陆容器镜像服务控制台

2.设置阿里云 Docker registry 登陆密码

若是是首次访问,系统会提示您进行初始化设置。设置您的登陆密码,并单击肯定。

3.建立命名空间。

4.建立镜像仓库。

      

 

接下来能够进入管理,查看具体的操做指南

 

5.执行Docker登陆命令,并输入密码。

sudo docker login --username=阿里云用户名 registry.cn-beijing.aliyuncs.com

6.重命名镜像。

  • 若是您本地的镜像是经过构建生成的,构建过程当中须要指定 tag 信息。
$ sudo docker tag [镜像id] registry.cn-beijing.aliyuncs.com/命名空间/仓库:[镜像版本号]
  • 若是您本地的镜像是从其它仓库下载的,已有了 registry 名、命令空间、仓库名和 tag 名称,上传到阿里云 registry 以前须要执行 Docker tag 命令进行修改。
[root@localhost application]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              4ab4c602aa5e        2 months ago        1.84kB
[root@localhost application]# sudo docker tag 4ab4c602aa5e registry.cn-hangzhou.aliyuncs.com/lp_namespace/helloworld:helloworld-1.0

7.上传镜像到阿里云 Docker registry。

sudo docker push registry.cn-hangzhou.aliyuncs.com/lp_namespace/helloworld:helloworld-1.0

 

8. 从Registry中拉取镜像

$ sudo docker pull registry.cn-hangzhou.aliyuncs.com/lp_namespace/helloworld:hello-world-1.0

 

更多详情请参考阿里云官网的教程:上传本地镜像

相关文章
相关标签/搜索