Docker基础知识整理与汇总

本文详细介绍了Docker的基本概念、安装步骤、常用命令及实战应用,包括镜像、容器、仓库的解析,以及Docker启动、管理容器的技巧,并提供了Docker部署nginx的示例,帮助读者快速掌握Docker技术。
摘要由CSDN通过智能技术生成

Docker

记录 Docker, 记录生活

Docker优势

Docker作为虚拟容器化技术,将项目代码带上环境配置打包成镜像,别人拉取镜像即可运行。作为现在最火热的容器技术,学习docker已经刻不容缓!

Docker介绍

明白三个术语
镜像:Docker镜像包含程序和配置环境,一个整体打包
容器:一个精简的linux系统,镜像启动后的实例,镜像运行起来就是容器,容器是我们真正跑起来的程序,我们可以把容器改动提交成一个新的镜像
仓库:相当于githup仓库,镜像保存在仓库中,方便其他人直接拉取镜像部署

Docker安装

需要的安装包

yum install -y yum-utils           

指定镜像的仓库

yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新yum软件包索引

yum makecache fast

安装docker, 社区版docker-ce

yum install docker-ce docker-ce-cli containerd.io

启动docker

systemctl start docker

查看是否启动成功

docker version

测试运行docker仓库镜像hello-word

docker run hello-word

第一次会出现下图信息, 证明docker拉取运行成功
先pull拉取镜像,再运行
在这里插入图片描述
docker中run命令的运行原理:
执行后,现在本地查找是否有镜像,如果有,则直接运行。如果没有,则去
Docker Hup上下载镜像,下载到本地再运行。

查看docker下载的镜像信息

docker images

Docker常用命令

帮助指令

docker version
docker info  #查看docker整体信息
docker --help  

镜像指令

docker images  #查看本地镜像
docker search  #搜索镜像
docker pull  #下载镜像
docker rmi  #删除镜像

下载镜像

docker pull mysql

指定版本下载,不指定版本则使用最新版本latest

docker pull mysql:5.7

删除镜像

docker rmi -f 镜像id   
dokcer rmi -f 镜像A 镜像B    #批量删除
docker rmi -f $(docker images -aq)   #删除全部镜像 $()内传参数,当前时获取所有镜像id
例如根据参数删除hello-world镜像
docker rmi -f $(docker images hello-world -q)

容器指令

docker ps  #查看已运行的镜像
docker run 镜像    #新建容器并运行
docker ps -a          #列出所有的容器(包含历史已运行过的) 
docker rm 容器id      #删除指定容器
docker start 容器id      #启动容器,不会新建容器
docker restart 容器id    #重启容器
docker stop 容器id       #停止当前正在运行的容器
docker kill 容器id       #强制停止当前容器

启动mysql,-p指定映射端口,指定名字,-e指定root密码,-d指定后台启动

docker run -p 3306:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.5
启动带编码的mysql
docker run -p 3307:3306 --name mysql03 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.5 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

也可以使用另一种方式,启动mysql镜像并进入容器

docker run -it mysql /bin/bash
ls
mysql -uroot -p #进入mysql操作

进入mysql容器

docker exec -it mysql5.7 /bin/bash

docker日志查看

docker logs 容器id

其他常用的查看日志的方式,通过help指令查看,-f 跟随日志输出, -t 展示时间戳

[root@localhost /]# docker logs --help
Usage:  docker logs [OPTIONS] CONTAINER
Fetch the logs of a container
Options:
      --details        Show extra details provided to logs
  -f, --follow         Follow log output
      --since string   Show logs since timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
  -n, --tail string    Number of lines to show from the end of the logs (default "all")
  -t, --timestamps     Show timestamps
      --until string   Show logs before a timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)

常用查看日志方式

docker logs -ft 容器id   #跟随日志输出
docker logs  -t --tail n  容器id  #查找某行日志

查看容器中进程信息

docker top 容器id

查看容器的详细信息

docker inspect 容器id

进入容器内部,可以修改配置

方式一 #进入当前容器后开启一个新的终端
docker exec -it 容器id bashshell
方式二  # 进入容器正在执行的终端
docker attach 容器id

文件拷贝

docker cp 容器id:容器内路径  宿主机目标路径

测试文件拷贝

[root@localhost ~]# docker exec -it fba22a62c505 /bin/bash
root@fba22a62c505:/# ls
bin   dev			  entrypoint.sh  home  lib64  mnt  proc  run   srv  tmp  var
boot  docker-entrypoint-initdb.d  etc		 lib   media  opt  root  sbin  sys  usr
root@fba22a62c505:/# touch abc.txt
root@fba22a62c505:/# ls
abc.txt  boot  docker-entrypoint-initdb.d  etc	 lib	media  opt   root  sbin  sys  usr
bin	 dev   entrypoint.sh		   home  lib64	mnt    proc  run   srv	 tmp  var
root@fba22a62c505:/# exit
exit
[root@localhost ~]# docker cp fba22a62c505:/abc.txt /
[root@localhost ~]# cd /
[root@localhost /]# ll
总用量 20
-rw-r--r--.   1 root root    0 8月  17 10:44 abc.txt
lrwxrwxrwx.   1 root root    7 8月  14 16:08 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 8月  14 16:12 boot
drwxr-xr-x.  20 root root 3200 8月  17 10:33 dev
drwxr-xr-x.  76 root root 8192 8月  17 10:33 etc
drwxr-xr-x.   2 root root    6 4月  11 2018 home

本文根据原文学习做的整理
原文地址:http://mp.weixin.qq.com/s?subscene=88&__biz=MzA5NDIzNzY1OQ==&mid=2735619488&idx=1&sn=a412eeb3ba566408632cae3001992a65&chksm=b6ab3b1481dcb202393e9fcc763191f3769799e5c30518a18b09c77d5f51d316868756196f9a&scene=7#rd

Docker挂载目录部署nginx

创建nginx本地存放路径

mkdir -p ~/nginx/html ~/nginx/conf ~/nginx/logs

将react前端静态页面拷贝到宿主机的~/nginx/html下
挂载启动nginx,-v 指将docker中的目录挂载到宿主机目录下

docker run -d --name nginx-react -p 81:80 -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/nginx/html:/usr/share/nginx/html/ -v ~/nginx/logs:/var/log/nginx   nginx

访问81端口前端应用
查看访问日志

docker logs -f 容器id
或者
tail -f ~/nginx/logs/access.log  启动挂载本地的日志
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值