docker使用学习笔记

docker学习记录
docker ps: 显示当前正在运行的容器。
1. 最常见的用法
$ docker ps
显示当前正在运行的容器。
在 PORTS 一列,如果暴露的端口是连续的,还会被合并在一起,例如一个容器暴露了3个 TCP 端口:100,101,102,则会显示为 100-102/tcp。
2. 显示所有状态的容器
$ docker ps -a
容器的状态共有 7 种:created|restarting|running|removing|paused|exited|dead。
3. 显示最后被创建的 n 个容器
$ docker ps -n 3
注意,这里不限状态。
4. 显示最后被创建的容器
$ docker ps -l
相当于 docker ps -n 1。
5. 显示完整输出
$ docker ps --no-trunc
即不会截断输出。该选项有点长,其中 trunc 算是 truncate 的缩写。
6. 只显示容器 ID
$ docker ps -q
清理容器时非常好用,filter 过滤显示一节有具体实例。
7. 显示容器文件大小
$ docker ps -s
该命令很实用,可以获得 2 个数值:一个是容器真实增加的大小,一个是整个容器的虚拟大小。
查看源码(https://github.com/moby/moby/blob/master/daemon/getsize_unix.go)后可知,容器虚拟大小 = 容器真实增加大小 + 容器镜像大小。
docker images : 列出本地镜像。


docker安装redis:
1.拉取Redis镜像
docker pull redis
2.运行Redis(端口/密码/后台运行)fuyou-redis-01:是docker中redis镜像名:REPOSITORY
docker run -d --name fuyou-redis-01 -p 6379:6379 redis --requirepass "该redis容器密码"

命令参数解释:
-d 后台运行
–name fuyou-redis-01给容器取得名字
-p 6379:6379 设置端口映射,即系统端口6379映射到容器内部端口6379
之后的 redis 即镜像名称,这里是最新版,所以省略了版本号。若为其他版本则 redis:版本
–requirepass “该redis容器密码” 为该redis容器设置密码
3、docker stop redis 结束redis容器
此处"redis"是 docker ps 中IMAGE中名字
4、docker start redis 启动redis容器
此处"redis"是 docker ps 中IMAGE中名字

docker 安装mysql
1、获取mysql5.7镜像
docker pull mysql:5.7
或者 拉取 MySQL 官方的最新版本的镜像镜像
docker pull mysql:latest
2、运行容器
$ docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
-p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。
3、通过 docker ps 命令查看是否安装成功
4、重启后可以通过 docker ps 中CONTAINER ID进行启动比如
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
123141e52be7 redis "docker-entrypoint.s…" 17 hours ago Up 16 hours 0.0.0.0:6379->6379/tcp redis
1e36a232e75e centos/mysql-57-centos7 "container-entrypoin…" 5 weeks ago Up 2 days 0.0.0.0:3306->3306/tcp mysql57
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
123141e52be7 redis "docker-entrypoint.s…" 17 hours ago Up 16 hours 0.0.0.0:6379->6379/tcp redis
1e36a232e75e centos/mysql-57-centos7 "container-entrypoin…" 5 weeks ago Exited (0) 46 seconds ago mysql57

docker start 1e36a232e75e :这样就启动mysql了

学习参考URL :
Docker的安装与基本操作详解(基于Centos7.5)
https://blog.csdn.net/qq_42391904/article/details/104289113

https://www.runoob.com/docker/docker-install-mysql.html

Docker删除镜像和容器
https://blog.csdn.net/qq_26709459/article/details/80785761

  常见错误:无法安装mysql,或redis

   docker pull image 报错 i/o timeout

    配置完daemon.json 后使用配置的地址进行搜索如下
    daemon.json
      { "registry-mirrors": [ "https://docker.xuanyuan.me" // 轩辕镜像源,高速节点 ] }

    搜索使用:docker search docker.xuanyuan.me/nginx
参考地址:https://cloud.tencent.com/developer/article/2529846
https://cloud.tencent.com/developer/article/2177650?from=15425&policyId=20240001&traceId=01k061d51mc167cy7zevfck5mr&frompage=seopage

问题描述:在Centos8系统中,使用docker run时,出现如下报错:
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
Error: open /proc/self/uid_map: no such file or directory

解决办法:
1,卸载podman软件(可以使用rpm -qa|grep docker)
yum remove docker
2,下载docker-ce源
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
3,安装docker-ce
yum install docker-ce -y

问题原因分析:
Centos 8使用yum install docker -y时,默认安装的是podman-docker软件




posted @ 2021-09-16 11:06  thinking_淡然  阅读(70)  评论(0)    收藏  举报