docker笔记

简介

docker是为了简化外网服务器软件环境部署的工作。现在初浅的理解是,可以在linux机器上通过docker单独安装mysql,nginx,应用程序的也可以跑在一个docker之上。

Docker 包括三个基本概念:

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看着一个代码控制中心,用来保存镜像。
安装

参考了腾讯在线实验 菜鸟入门 可以很快速的将docker部署到你的服务器上。

  • 可能需要卸载掉老的docker
$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
  • 设置仓库
$ 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
$ sudo yum install docker-ce docker-ce-cli containerd.io
  • 安装
$ sudo yum install docker-ce docker-ce-cli containerd.io

安装完成之后,可以通过docker -v来查看当前docker的版本信息。

基本操作
  • 运行一个容器
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
  • 查询容器
docker ps -a
  • 使用 docker start 启动一个已停止的容器:
docker start b750bbbcfd88
  • 后台运行 (增加-d的指令)
docker run -itd --name ubuntu-test ubuntu /bin/bash
  • 停止一个容器
docker stop <容器 ID>
  • 进入容器

docker attach 如果从这个容器退出,会导致容器的停止。

docker exec:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。

docker attach 1e560fca3906 
docker exec -it 243c32535da7 /bin/bash
  • 导出和导入容器
docker export 1e560fca3906 > ubuntu.tar
  • 导入容器快照
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
  • 下面的命令可以清理掉所有处于终止状态的容器。
docker container prune

更多指令可以后续补充

安装mysql

参考菜鸟入门mysql安装

使用Docker搭建MySQL服务

# 拉取mysql5.7版本
docker pull mysql:5.7   # 拉取 mysql 5.7
# 检查版本
docker images
# 启动mysql
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
  • -–name:容器名,此处命名为mysql
  • -e:配置信息,此处配置mysql的root用户的登陆密码
  • -p:端口映射,此处映射 主机3306端口 到 容器的3306端口
  • -d:源镜像名,此处为 mysql:5.7
安装nginx
# 拉取版本
docker pull nginx:latest
# 检查版本
docker images
# 启动docker中的nginx
docker run --name nginx-test -p 8080:80 -d nginx
  • --name nginx-test:容器名称。
  • -p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
  • -d nginx: 设置容器在在后台一直运行。

可能需要去修改nginx里面的配置项目,我需要将这个服务器端口映射出来。
[docker 安装nginx 并部署](https://blog.csdn.net/ddhsea/article/details/92203713
里面有3个步骤

# 在自己目录下创建这些文件夹
mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf
# 将容器中的nginx文件拷贝出来,通过docker ps出来实例编号。
sudo docker cp 3bd71361a112:/etc/nginx/nginx.conf ~/nginx/conf
# 启动的时候,绑定映射关系
docker run --name yzgmweb -d -p 35981:8088 \
    -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf\
    -v /root/nginx/www:/usr/share/nginx/html\
    -v /root/nginx/logs:/var/log/nginx -d docker.io/nginx
  • -p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
  • -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf 将本地文件映射到容器内部。
扩展

后续如果有时间,可以再去研究一下 docker compose & swarm;dockerfile之类的东西。再做记录。

引用
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Docker 学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器的概念 完成Docker安装与启...
    执笔梦一场阅读 3,325评论 2 10
  • Docker是一种容器技术,它的存在就是为了解决容器技术本身的复杂性。Docker容器拥有很高的性能,同时同一台宿...
    四条眉毛陆小鸡阅读 607评论 0 0
  • 我跟他一次见面那是在4月份,一个春暖花开的日子,一个让人想要恋爱的季节,记得与他相见的前一晚,我看了一篇微博“大学...
    璐璐_Qearl阅读 279评论 0 1
  • 记忆点:一次购物、一次约会、一次旅游、一次种种体验,能给你留下深刻记忆的有哪些?作为餐厅从业人员,在过程中如何可以...
    林小理大阅读 134评论 0 0
  • 在公交上 爸爸抱着你 你眼中的灵动和活力 让旁边的成人们都显得暗然失色 旁边的爷爷在打盹 眼睛都快和上了 后边的年...
    阿都Alsa阅读 209评论 0 3