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

更多指令可以后续补充

https://blog.csdn.net/whatday/article/details/86770609

安装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之类的东西。再做记录。

引用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值