Docker学习(二)——docker基本操作及镜像加速

1. Docker命令行工具docker

使用Docker时,需要使用Docker命令行工具dockerDocker daemon(Docker守护进程,负责接收并分发执行Docker命令)建立通信。

简单来说:在使用docker所有命令,都需要 docker [OPTIONS] COMMAND

$ sudo docker

Usage:  docker [OPTIONS] COMMAND

A self-sufficient runtime for containers

Options:
      --config string      Location of client config files (default "/root/.docker")
  -c, --context string     Name of the context to use to connect to the daemon (overrides DOCKER_HOST env var and default context set with "docker context use")
  -D, --debug              Enable debug mode
  -H, --host list          Daemon socket(s) to connect to
  ...

注意:docker命令一般都需要root权限——命令前加sudo

2.使用–help获取帮助

$ sudo docker start --help
Usage:  docker start [OPTIONS] CONTAINER [CONTAINER...]
Start one or more stopped containers

Options:
  -a, --attach               Attach STDOUT/STDERR and forward signals
      --detach-keys string   Override the key sequence for detaching a container
  -i, --interactive          Attach container's STDIN

3. Docker 命令结构图


在这里插入图片描述

4. Docker环境信息

docker info命令可以输出docker的配置信息

$ sudo docker info
Client:
 Context:    default
 ...
Server:
 Containers: 2
  Running: 1
  Paused: 0
  Stopped: 1
 Images: 1
 Server Version: 20.10.2
 ...
 Kernel Version: 4.15.0-124-generic
 Operating System: Ubuntu 18.04.5 LTS
 ...

5. 容器生命周期

5.1 docker run

使用方法 docker run [OPTIONS] IMAGE [COMMAND] [ARG…]

docker run命令用来基于指定的镜像创建一个容器,并根据OPTIONS来控制该容器。

$ sudo docker run -i -t --name mytest python:3.6 /bin/bash
#参数解释
-i 表示使用交互模式,即容器运行时还接收终端的输入
-t 表示分配一个伪终端,即容器运行时,为容器内的环境打开一个终端
--name 指定运行的容器名(python:3.6),其中的3.6是一个image TAG,用于区分同名镜像
/bin/bash 表示使用bash shell来进行命令解析
#除此之外,在web开发中常用的参数
-p 将容器的端口暴露(映射)给宿主机的端口,使得可以通过宿主机的HostPost:ContainerPort访问Web应用

#后台运行容器,即容器不会开启新的命令行,也不会因为没有被使用到而’自杀‘
$ sudo docker run -d --name mytest python:3.6 

※只有-t,没有/bin/bash,表现为:分配了伪终端,但未给出该伪终端的shell(个人理解为命令输入框)
对于linux的shell,这篇博客讲的比较清楚:https://www.cnblogs.com/tjudzj/p/7088543.html

5.2 docker start/stop/restart

对于已经存在的容器,使用docker start ContarinerID 启动容器

$ sudo docker start -i bbed11094489
#参数说明
-i 表示开放输入流

6. Docker registry

6.1 docker pull

从官方仓库Docker Hub拉取Image,常用指令如下

#从官方拉取ubuntu:latest镜像
$ sudo docker pull ubuntu
#从官方拉取指定Tag的镜像
$ sudo docker pull ubuntu:ubuntu12.04
#从特点的仓库拉取镜像
$ sudo docker pull SEL/ubuntu
#从其他服务器拉取镜像
$ sudo docker pull 10.10.103.215:5000/sshd

6.2 阿里云镜像加速

docker拉取镜像时首先从国外仓库拉取,速度很慢,需要修改为国内企业提供的镜像仓库(阿里云为例)
在这里插入图片描述

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://*****.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

6.3 docker push

将本地Image上传至Docker Hub

#上传至Hub的指定位置
$ sudo docker push SEL/ubuntu

7. 镜像管理

7.1 docker images 命令

使用格式 docker images [OPTIONS] [REPOSITORY] [:TAG]

$ sudo docker images
#输出:可看出Image的基本信息
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
python       3.6       6b0219e0ed75   3 days ago   874MB

7.2 docker rmi / docker rm

docker rm ContarinerID 用来删除容器
docker rmi ImageID 用来删除镜像

注意:当存在容器时,无法删除对于的镜像,需要加 -f 强制删除存在容器的镜像或者运行中的容器

8. 容器运行维护操作

8.1 docker attach

连接到正在运行的容器,观察该容器的运行情况

$ sudo docker attach ID

8.2 docker inspect

查看镜像和容器的详细信息
在这里插入图片描述

8.3 docker ps

$ sudo docker ps     #查看正在运行的容器
#输出样例
CONTAINER ID   IMAGE        COMMAND     CREATED       STATUS         PORTS     NAMES
bbed11094489   python:3.6   "python3"   4 hours ago   Up 5 minutes             mytest1

$ sudo docker ps -a   #查看所有的容器(运行+未运行)
root@iZ2ze2tw7cm243uv3wr3e6Z:~# sudo docker ps -a
#输出样例
CONTAINER ID   IMAGE        COMMAND       CREATED       STATUS                     PORTS     NAMES
bbed11094489   python:3.6   "python3"     4 hours ago   Up 7 minutes                         mytest1
7302db7765fc   python:3.6   "/bin/bash"   4 hours ago   Exited (130) 4 hours ago             mytest

9. 其他基础命令

$ sudo docker commit ContainerID   #将正在运行的容器制作为新的镜像-官方不推荐
$ sudo docker events  #查看Docker的实时系统事件
$ sudo docker history ImageID #查看Docker镜像的历史版本信息
$ sudo docker logs ContarinerID #查看Docker中容器的运行日志,通常用来找报错原因
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值