Docker 常用命令
1. Docker 的安装(ubuntu)
2. Docker Hub
3. 镜像仓库操作
3.1 docker pull : 从镜像仓库中拉取或者更新指定镜像
pi@raspberrypi:~ $ sudo docker pull ubuntu:18.04 18.04: Pulling from library/ubuntu 4471275a8ba0: Pull complete 5237e132a11f: Pull complete 130e9bf920a8: Pull complete 2ec82554e9e7: Pull complete 014902bb4456: Pull complete Digest: sha256:3f119dc0737f57f704ebecac8a6d8477b0f6ca1ca0332c7ee1395ed2c6a82be7 Status: Downloaded newer image for ubuntu:18.04
3.2 docker image ls 列出仓库中所有镜像
pi@raspberrypi:~ $ sudo docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 16.04 8a3d476a03eb 3 weeks ago 91.8MB
ubuntu 18.04 538d198057ab 3 weeks ago 65.1MB
homeassistant/raspberrypi3-homeassistant 0.72.0 df8da8840c1d 8 weeks ago 1.06GB
4. 容器操作
注意:镜像仓库仅仅是作为image存在,
除了基本的管理以外(images,rmi,tag,build,history,save,import...),不具备运行状态的操作(start,stop,logs,ps,cp...)
4.1 docker run 创建一个新的容器并运行一个命令
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明:
-d: 后台运行容器,并返回容器ID; -i: 以交互模式运行容器,通常与 -t 同时使用; -p: 端口映射,格式为:主机(宿主)端口:容器端口 -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用; --name="nginx-lb": 为容器指定一个名称;-m :设置容器使用内存最大值;
比如: sudo docker run -i -t ubuntu:16.04 /bin/bash
pi@raspberrypi:~ $ sudo docker run -i -t ubuntu:16.04 /bin/bash root@a163d82f7749:/# ls bin boot dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var root@a163d82f7749:/# cat /proc/version Linux version 4.14.52-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611)) #1123 SMP Wed Jun 27 17:35:49 BST 2018
pi@raspberrypi:~ $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a163d82f7749 ubuntu:16.04 "/bin/bash" About a minute ago Up About a minute hardcore_poincare
比如: sudo docker run -d -i -t ubuntu:16.04 /bin/bash
pi@raspberrypi:~ $ sudo docker run -d -i -t ubuntu:16.04 /bin/bash 294140c698f82a25586774b8eab28ff762c6de061fba8d64965911554a1399ed pi@raspberrypi:~ $ pi@raspberrypi:~ $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 294140c698f8 ubuntu:16.04 "/bin/bash" 10 seconds ago Up 8 seconds quizzical_bohr
4.2 docker attach 连接到正在运行中的容器
比如:4.1中使用 docker run -d 进行后台运行的容器(id: 294140c698f8),可以通过 docker attach 连接
pi@raspberrypi:~ $ sudo docker attach 294140c698f8 root@294140c698f8:/# cat /proc/version Linux version 4.14.52-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611)) #1123 SMP Wed Jun 27 17:35:49 BST 2018 root@294140c698f8:/# ls bin boot dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var
4.3 docker logs 获取容器的日志
OPTIONS说明: -f : 跟踪日志输出 --since :显示某个开始时间的所有日志 -t : 显示时间戳
比如: sudo docker logs -f 294140c698f8
pi@raspberrypi:~ $ sudo docker logs -f 294140c698f8 root@294140c698f8:/# (arg: 4) ^C root@294140c698f8:/# cat /proc/version Linux version 4.14.52-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611)) #1123 SMP Wed Jun 27 17:35:49 BST 2018 root@294140c698f8:/# ls bin boot dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var root@294140c698f8:/# pwd
4.3 docker rm 删除一个或多少容器
pi@raspberrypi:~ $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 294140c698f8 ubuntu:16.04 "/bin/bash" 11 minutes ago Up 11 minutes quizzical_bohr
pi@raspberrypi:~ $ sudo docker rm -f 294140c698f8 294140c698f8
pi@raspberrypi:~ $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES