查看指定ID的容器信息
$ docker inspect
查看有所有镜像
$ docker images
上传镜像到Docker Hub
先去https://hub.docker.com/官网申请一个docker hub 帐号
$ docker login # 登录Docker Hub
$ docker images #查看本地镜像
$ docker tag <镜像名> <用户名/镜像名> #将镜像转让我的账号下
$ docker push <用户名>/<镜像名>
安装Docker
ubuntu
第一步、检查是否支持Docker
$ uname -a
#检查内核版本,必须高于3.10
$ ls -l /sys/class/misc/device-mapper
#检查存储驱动
第二步、安装docker
$ wget -qO- https://get.docker.com/ | sh
Centos7
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
删除所有的Docker
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
sudo yum-config-manager \
–add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
使用 Docker 仓库进行安装
sudo yum install -y docker-ce docker-ce-cli containerd.io
如果提示您接受 GPG 密钥,请选是。
配置国内的镜像源
mkdir -p /etc/docker/
echo ‘{“registry-mirrors”:[“http://hub-mirror.c.163.com”,“https://registry.docker-cn.com”]}’ > /etc/docker/daemon.json
systemctl daemon-reload && systemctl restart docker
容器的基本操作
普通容器
启动容器
$ docker run [<用户名>/]<镜像名>[:tag] [命令]
在启动的容器中安装Ping
docker run <用户名>/<镜像名> apt-get install -y ping
启动交会容器
$ docker run [–name=<名称>] -i -t <镜像全名> /bin/bash
-i 表示一直保持输入
-t 表示打开tty终端
–name 自定义名称
查看容器
$ docker ps [-a][-l]
-a 查看所有的容器
-l 查看最新的容器
查看指定ID的容器信息
$ docker inspect
启动/停止容器
$ docker [-i] start/stop <容器>
-i表示持续输入
删除容器
$ docker rm <容器>
守护式容器
特点
-
可以长期运行
-
没有交互会话
-
非常适合运行应用服务
命令
方法一
$ docker run -i -t <镜像> /bin/bash
ctrl+p ctrl+q 退出bash,但没关闭容器
$ docker attach <正在运行容器>
重新进入正在运行的容器
方法二
$ docker run -d <镜像> <命令>
-d 后台守护
查看容器日志
$ docker logs [-f][-t][–tail=n] 容器名
-f 持续输出日志
-t 日志加上时间戳
–tail 返回最后的多少行
查看运行中的容器的进程
$ docker top <容器>
在运行的容器中启动新的进程
$ docker exec [-d][-i][-t] <容器名> [命令]
-d 后台运行
-i 交会运行
-t 打开终端
停止容器
$ docker kill/stop <容器名>
kill 直接停止
stop 等待进程结束后停止
设置端口映射
$ docker run [-P][-p | :] …
-P 映射容器中所有的端口
-p 指定映射容器中某几个端口
eg:
$ docker run -P -i -t ubuntu /bin/bash # 映射所有的端口
$ docker run -p 80 -i -t ubuntu /bin/bash # 映射80端口
$ docker run -p 8080:80 -i -t ubuntu /bin/bash # 将内部的80映射为8080
$ docker run -p 127.0.0.1:8080:80 -i -t ubuntu /bin/bash # 将内部的80端口映射为127.0.0.1:8080
注意:如果使用5、6行的方法进行映射,外部端口是随机分配的
管理镜像
概念
-
TAG:标签
-
默认:latest
-
这里多少为版本
-
eg:docker pull node:12.1.1 下载nodejs12.1.1版本
基本操作
显示所有的镜像
$ docker images [-q][-a] [仓库]
-q 只看id
-a 查看所有
查看镜像的详细
$ docker inspace <镜像名>
删除镜像
$ docker rmi [-f] <镜像名>
-f 强制删除
查找镜像
方法1:镜像dockerhub上查找
方法2:
$ docker search [–automated][-no-trunc][-s ] <镜像名>
–automated 只显示自动化选项
–no-trunc 不分页显示
-s 显示的最低num的stat镜像
下载镜像
$ docker pull [-a] <镜像名>
-a 下载匹配的所有镜像
标记镜像到某个仓库
$ docker tag IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
上传镜像到DockerHub
$ docker images #查看本地镜像
$ docker tag <镜像名> <用户名/镜像名> #将镜像转让我的账号下
$ docker push <用户名/镜像名:Tag> #上传镜像
打包镜像
打包镜像有两种方法,推荐使用Dockerfie方法
使用commit打包
将部署好的容器进行打包。
$ docker commit [-a][-m][-p] <容器> <用户名/镜像名:版本>
-a “” 镜像作者
-m “” 打包备注
-p 不停止镜像打包
使用Dockerfile文件打包
第一步:创建Dockerfile文件
#Dockerfile
FORM <基础镜像:Tag>
MAINTAINER <用户名> “联系方式” #新版本推荐使用 LABEL maintainer=value
RUN <linux命令>
…
EXPOSE <端口号>
说明:
这个
EXPOSE
指令实际上并不发布端口。它作为构建映像的人和运行容器的人之间的一种文档类型,而这些港口将被发布。若要在运