一、docker简单使用
a.列出镜像 docker images
b.从docker hub拉取最新版本镜像 docker pull xxx
错误:
Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting
for connection (Client.Timeout exceeded while awaiting headers)
解决办法:
docker在中国已经有了仓库:https://www.docker-cn.com/registry-mirror
进入/etc/docker,查看有没有 daemon.json。这是docker默认的配置文件。如果没有新建,如果有,则修改。
vi daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
保存退出。
service docker restart
Repository 表示镜像仓库的名称
Tag 标识镜像的标签,一般是版本号
Image Id 表示镜像的ID,12位
Created 创建时间
Size 大小
c.搜索镜像 docker search xxx
Name 镜像仓库名称,不带/表示官方仓库,带/表示个人公开仓库
Description 描述 Stars 收藏数,欢迎程度 Official 是否官方 AutoMated 是否自动构建提交的镜像
d.导出导入镜像 docker save mysql >mysql.tar
在另一台机子上面docker load mysql.tar
e.启动docker
后台启动
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
--name 指定容器名称
-d 是守护进程启动
docker run = docker create 容器x + docker start 容器x
-p 3306:3306 端口映射(容器端口:物理机端口)
交互启动
docker run -i -t 表示键盘标准输入 和 建立伪终端回话
-d 镜像名称
进入mysql容器:docker exec -it mysql /bin/bash
f.终止容器 docker kill xxx
docker ps 列出运行中的容器
g.删除镜像 docker rmi xxx
报错:Error response from daemon: No such container: 102816b1ee7d
解决:先删除容器docker rm xxx
删除没有标记的镜像
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
h.删除容器 docker rm xxx
删除所有容器 docker rm -f $(docker ps -a -q)
或者 docker rm -f `docker ps -a -q`
-a 查询所有容器
-q 仅列出容器id
-f 批量循环删除
i.拉取mysql5.6.17版本mysql
docker pull mysql:5.6.17
j.进入容器 docker attach xxx (不建议使用)
使用docker exec -it xxx /bin/bash
或者直接跟其他命令 docker exec -i -t xxx ls -l
k.访问容器中服务
l.停止容器 docker stop xxx 重启 restart