0%

Docker学习

基础

安装
1.通过wwww.docker.com下载桌面版docker
2.配置Docker镜像站
3.执行docker run hello-world,看输出完美运行~

基本概念

  • 镜像(Image)
  • 容器(Container)
  • 仓库(Repository)

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

常用操作

拉取镜像

1
2
3
4
5
6
7
//下载官方nginx镜像源,等同于docker pull docker.io/nginx
//也等同于docker pull docker.io/nginx.io/nginx:latest
docker pull nginx


//下载国内镜像源的ubuntu镜像,并制定版本
docker pull registry.docker-cn.com/library/ubuntu:18.04

推送镜像

1
2
3
4
5
//推送镜像到docker hub,需要先注册账号
docker push <你的用户名>/<你打包时定义的镜像名>:<标签,版本号>

//推送镜像到私有镜像库,需要提前搭建好仓库服务(比如用harbor来搭建)
docker push <私有镜像库域名,如a.b.com>/<项目名称>/镜像名:<标签>

打包镜像

1
2
3
//提前准备好一个Dockerfile,在Dockerfile相同路径下执行:
docker build -t <指定一个完整的镜像名,比如testdemo:v1.0>
//即可打包出一个本地镜像,然后再通过docker push 就可以推送到远端镜像仓库

启动容器

1
2
3
docker run -d //-d 表示通过daemon方式来启动
-p 13306:3306 //端口映射,将host主机的13306端口和docker容器的3306端口映射起来
-v /etc/mysql:/var/mysql //目录挂载,将容器内的/var/mysql目录挂载到host主机的/etc/mysql目录,可以实现容器内这个目录下的数据持久化,mysql为镜像名(指定加载哪个镜像)

重启或停止或删除容器应用

1
2
3
4
5
6
7
docker ps  //列出目前正在运行的容器列表
docker ps -a //列出所有的容器列表
docker start <容器id> //通过容器id来重启某个容器,批量操作的话,直接在参数后面再跟对应容器id即可
docker stop <容器id> //通过容器id来关闭某个容器,批量操作的话,直接在参数后面再跟对应容器id即可
docker rm <容器id> //通过容器id来删除掉某个已经停止的容器
docker rm -f <容器id> //通过容器id来删除掉某个正在运行的容器
docker container rm [trusting_newton]

删除本地镜像

1
2
docker rmo <镜像id>
docker rmi -f <镜像id> //强制删除

查看容器日志

1
2
docker logs -f <容器id>
docker inspect <容器id> //从返回结果中找到LogPath,运行的历史日志会在这个文件里找到

进入容器内

1
2
3
4
docker  exec  -it <容器id>  /bin/bash  //进入容器内并进入它的shell终端
docker exec -it <容器id> <shell命令> //在容器内执行shell命令
docker exec -it <容器id> ls -l //查看容器内系统跟目录下所有文件或文件夹
# 进入容器后,可以直接通过exit命令推出容器

服务器Linux下安装Docker社区版(Centos7为例)

  • yum源使用阿里云的源
1
2
3
4
5
6
cd /etc/yum.repos.d/
# 下载阿里云的yum源
wget http"mirrors.aliyun.com/repo/Centos-7.repo
mv CentOS-Base.repo CentOS-Base.repo.back

mv Centos-7.repo CentOS-Base.repo
  • 重置yum源

    1
    2
    3
    4
    yum install -y yum-utils
    yum-config-manager --add-repo http://mirros.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    yum clean all
    yum makecache
  • 安装docker

1
2
3
4
5
6
7
8
9
10
#查看阿里云上docker 源信息
yum list docker-ce
#安装docker最新社区版
yum -y install docker-ce
#查看docker信息
docker -v
#启动docker
systemctl start docker
#查看docker详细状态信息
docker info

参考资料
Docker — 从入门到实践