前言:

前些天有人问镜像是什么?容器有是什么?docker对于初学者来说,往往分不清楚镜像和容器,编程语言都知道有一个面向对象,类和实例,类比作镜像,实例比作容器。

有的人蹦着学习的心态的去群里问人,爆出他的截图:docker run -d -i -t --name xxxxxxx;直接被群友怒怼,知道为何吗?

还有就是有人问,为什么我 docker ps 没有看到我运行的程序,如果你有此疑问那么请继续往下看!docker常用命令

1、搜索镜像

docker search xxx

如我搜索一个mysql的镜像,就会搜索出许多mysql的镜像版本

[root@iZbp19lugf22zbsubsf1y6Z ~]# docker search mysql

NAME DESCRIPTION STARS OFFICIAL AUTOMATED

mysql MySQL is a widely used, open-source relation…  [OK]
mariadb MariaDB is a community-developed fork of MyS… [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… [OK]
centos/mysql--centos7 MySQL 5.7 SQL database server
centurylink/mysql Image containing mysql. Optimized to be link… [OK]
mysql/mysql-cluster Experimental MySQL Cluster Docker images. Cr…
deitch/mysql-backup REPLACED! Please use http://hub.docker.com/r… 41 [OK]
bitnami/mysql Bitnami MySQL Docker Image [OK]
tutum/mysql Base docker image to run a MySQL database se…
schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic backup… [OK]
prom/mysqld-exporter [OK]
linuxserver/mysql A Mysql container, brought to you by LinuxSe…
centos/mysql--centos7 MySQL 5.6 SQL database server
circleci/mysql MySQL is a widely used, open-source relation…
mysql/mysql-router MySQL Router provides transparent routing be…
arey/mysql-client Run a MySQL client from a docker container [OK]
imega/mysql-client Size: MB, alpine:3.5, Mysql client: 10.1.… [OK]
openshift/mysql--centos7 DEPRECATED: A Centos7 based MySQL v5. image…
yloeffler/mysql-backup This image runs mysqldump to backup data usi… [OK]
fradelg/mysql-cron-backup MySQL/MariaDB database backup using cron tas… [OK]
genschsa/mysql-employees MySQL Employee Sample Database [OK]
ansibleplaybookbundle/mysql-apb An APB which deploys RHSCL MySQL [OK]
jelastic/mysql An image of the MySQL database server mainta…
widdpim/mysql-client Dockerized MySQL Client (5.7) including Curl… [OK]
monasca/mysql-init A minimal decoupled init container for mysql

docker pull xxx2、下载镜像

如下载mysql,也可以指定版本比如5.7版本(由于我这里已经下载了,所以提示已经存在)

[root@iZbp19lugf22zbsubsf1y6Z ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
Digest: sha256:f7985e36c668bb862a0e506f4ef9acdd1254cdf690469816f99633898895f7fa
Status: Image is up to date for mysql:5.7
docker.io/library/mysql:5.7

docker images3、查看仓库,既是查看已经pull下来的镜像

[root@iZbp19lugf22zbsubsf1y6Z ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
portainer/portainer latest 4cda95efb0e4 days ago .6MB
gitlab/gitlab-ce latest 7783a0d67474 days ago .77GB
mysql 5.7 383867b75fd2 weeks ago 373MB
alpine latest weeks ago .58MB
rethinkdb latest d8636baa6e8e months ago 185MB
twang2218/gitlab-ce-zh latest 18da462b5ff5 months ago .61GB
jenkins latest cd14cecfdb3a months ago 696MB
swarm latest ff454b4a0e84 months ago .7MB
ehazlett/curl latest c8127af118e0 years ago .38MB
dockerclub/shipyard latest 2ac2c13dfa84 years ago .4MB
shipyard/docker-proxy latest cfee14e5d6f2 years ago .47MB
microbox/etcd latest 6aef84b9ec5a years ago .9MB
training/webapp latest 6fae60ef3446 years ago 349MB

4、开始run一个镜像

在run之前得讲一下这里,敲黑板了!通过docker的两个参数 -i -t,让docker运行的容器实现"对话"的能力,-d让后台运行,-p端口映射, -v映射容器的目录方便管理。如果还不懂映射是什么,请自行百度一下哦。

-t:在新容器内指定一个伪终端或终端。

-i:允许你对容器内的标准输入 (STDIN) 进行交互。

-d:让容器在后台运行。

-p:将容器内部使用的网络端口映射到我们使用的主机上。

-v:射容器的安装目录方便管理。

我们将开始安装一个mysql:

docker run -d -p : --name sql -v ~/mysql/conf:/etc/mysql/conf.d -v ~/mysql/data:/var/lib/mysql -v ~/mysql/logs:/logs -e MYSQL_ROOT_PASSWORD= mysql:5.7

-d:后台运行

-p 3333:3306 :容器内部端口3306映射到端口3333,既是稍后我们连接mysql用3333

--name :运行的容器名称,name

-v:如 ~/mysql/conf 对应容器的目录文件/etc/mysql/conf.d

-e MYSQL_ROOT_PASSWORD=123456:mysql的连接密码

mysql:5.7:既是运行这个镜像mysql:5.7

[root@iZbp19lugf22zbsubsf1y6Z ~]# docker run -d -p : --name sql -v ~/mysql/conf:/etc/mysql/conf.d -v ~/mysql/data:/var/lib/mysql -v ~/mysql/logs:/logs -e MYSQL_ROOT_PASSWORD= mysql:5.7
5cf09c602ca6db9a6af382664d72333ab1a7ea1e43d4eda7820c0032b2bf07e6

注意你所设置的端口,是否在阿里云上开端口?不然是连接不到的,所以要开放端口才能正常访问!创建成功后,我们用Navicat 连接看一下,连接成功证明已完成:

5、查看在运行的容器:

docker ps

[root@iZbp19lugf22zbsubsf1y6Z ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5cf09c602ca6 mysql:5.7 "docker-entrypoint.s…" minutes ago Up minutes /tcp, 0.0.0.0:->/tcp sql

docker ps -a6、查看所有容器包括在运行中的和停止的容器:

5cf09c602ca6 mysql:5.7 "docker-entrypoint.s…"  minutes ago Up  minutes /tcp, 0.0.0.0:->/tcp sql
1fc6222bef2d jenkins "/bin/tini -- /usr/l…" hours ago Exited () seconds ago jenkins

7、停止与启动你是否会发现多了一个jenkins呢?这是因为jenkins容器已经停止运行,当然有些朋友弄个hellword,为什么输入 docker ps 不显示出来呢?输入docker ps -a 就显示出来?这里说明一下,这个 hellword 是run一下子它就结束程序了你还想它后台运行啥?如果你还是让它运行,那倒是也可以,写一个死循环就可以咯!

可输入id或names

停止:docker stop xxx

[root@iZbp19lugf22zbsubsf1y6Z ~]# docker stop 5cf09c602ca6
5cf09c602ca6
[root@iZbp19lugf22zbsubsf1y6Z ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

首先要看下:docker ps -a ,为什么要看呢?因为我们要拿它的id或者names再进行启动,这里的 names = sql上面也输入了:docker ps,明显是看不到在运行了,那么我们启动看下。

启动:docker start sql

[root@iZbp19lugf22zbsubsf1y6Z ~]# docker start sql
sql

查看下在运行的容器,看到已在运行!

[root@iZbp19lugf22zbsubsf1y6Z ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5cf09c602ca6 mysql:5.7 "docker-entrypoint.s…" hours ago Up minutes /tcp, 0.0.0.0:->/tcp sql

8、当然我们还有以下常用命令:

  • ①重启:docker restart xxx
  • ②删除关联卷:docker rm -v xxx
  • ③删除镜像:docker rmi xxx
  • ④更换容器名称:docker rename 容器id new_name

到现在是否知道了:docker run -d -i -t --name xxxxxxx;直接被群友怒怼了吗?

只是因为 -d -i -t 可以一个 - 即可,如 -dit 即可。如果你被怼了,不用担心,是不是get了一个小技巧呢?

如果熟悉了docker,你便可以执行 shell 命令在进行自动部署安装了,不妨来试试!!!欢迎来QQ交流群:482713805

Docker学习2-Docker的基本命令与使用的更多相关文章

  1. Docker学习之Docker容器基本使用

    Docker学习之Docker容器基本使用 新建容器并启动 命令格式:docker run --options repository:tag 后台运行 命令格式:-d 已存在的容器相关操作 启动:do ...

  2. Docker学习之Docker镜像基本使用

    Docker学习之Docker镜像基本使用 获取镜像 命令格式:docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] 例如: docker pull ...

  3. Docker学习笔记 — Docker私有仓库搭建

    Docker学习笔记 — Docker私有仓库搭建   目录(?)[-] 环境准备 搭建私有仓库 测试 管理仓库中的镜像 查询 删除 Registry V2   和Mavan的管理一样,Dockers ...

  4. docker学习(2)基本命令

    原文地址:http://blog.csdn.net/we_shell/article/details/38368137 1. 查看docker信息(version.info) # 查看docker版本 ...

  5. Docker学习笔记 - Docker容器内部署redis

    Docker学习笔记(2-4)Docker应用实验-redist server 和client的安装使用 一.获取redis容器(含客户端和服务端) 二.创建服务端容器 1.在终端A中运行redis- ...

  6. Docker学习笔记 - Docker的守护进程

    学习目标:  查看Docker守护进程的运行状态 启动.停止.重启Docker守护进程 Docker守护进程的启动选项 修改和查看Docker守护进程的启动选项 1.# 查看docker运行状态  方 ...

  7. Docker学习笔记 - Docker客户端和服务端

    学习内容: Docker客户端和服务端的通讯方式:client和自定义程序 Docker客户端和服务端的连接方式:socket 演示Docker客户端和服务端之间用remote-api通讯:nc   ...

  8. Docker学习之Docker Registry

    前言 前面已经学习了怎样通过Dockerfile来构建我们自己的镜像了,但是一个系统可能包含着很多个微服务即有很多个镜像,当镜像越来越多的时候,就必须得有一个地方来管理这些镜像,Docker官方提供了 ...

  9. Docker学习:Docker安装和基本使用

    Docker Docek是一种容器技术.容器是一种轻量级.可移植.自打包的软件技术,使应用程序可以在几乎任何地方以相同的方式运行. 使用者可以在笔记本上创建并测试好的容器,无需任何修改就能够在生产系统 ...

  10. Docker学习之docker架构

    docker架构 解释 1.docker命令提交给docker daemon进行处理,可以拖取镜像,运行容器等等. 2.最右边的实际上是互联网的sass服务,docker daemon可以和Regis ...

随机推荐

  1. JQ动态生成节点绑定事件无效问题

    最近做项目的时候遇见了一个问题,通过jq将动态节点绑定到dom节点上,并且为动态节点绑定方法,此方法再次为动态节点添加动态节点,但在刷新之后,动态节点上的方法失效了,过程为:创建动态节点->动态 ...

  2. C# - VS2019WinFrm程序通过SMTP方式实现邮件发送

    前言 本篇主要记录:VS2019 WinFrm桌面应用程序通过SMTP方式实现邮件发送.作为Delphi转C#的关键一步,接下来将逐步实现Delphi中常用到的功能. 准备工作 搭建WinFrm前台界 ...

  3. Python 摘要算法hashlib 与hmac

    参考链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1017686752491744 摘要算法(也成为哈希算法)是用来防篡改的,因为我们的即使 ...

  4. 剑指 Offer——13. 调整数组顺序使奇数位于偶数前面

    题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变.这和书本不太一样. 解 ...

  5. linux用户和权限 setuid

    uid_t getuid(void); uid_t geteuid(void); int setuid(uid_t uid); int seteuid(uid_t euid); int setegid ...

  6. sparkSQL中的example学习(1)

    SparkSQLDemo.scala import org.apache.spark.sql.{Row, SparkSession} import org.apache.spark.sql.types ...

  7. Django 练习班级管理系统三 -- 分页

    在 user_manager 项目下创建一个 python package:utils,里面创建一个 page.py 文件 page.py 文件内容为: # 创建一个 PagerHelper 类 cl ...

  8. [小程序]微信小程序获取input并发送网络请求

    1. 获取输入框数据wxml中的input上增加bindinput属性,和方法值在js部分定义与之对应的方法,只要在输入的时候,数据就会绑定调用到该方法,存入data属性变量中 2. 调用get请求发 ...

  9. Python环境安装与基础语法(1)——计算机基础知识

    Python安装 pip #包管理工具 pip install #安装包 pip list #查看包 IPython #增强的python shell,自动补全,自动缩进,支持shell,增加了很多函 ...

  10. Centos7 安装mysql-8.0.18(rpm)

    1.前言 当前MySQL最新版本:8.0.18 (听说比5.7快2倍)官方之前表示:MySQL 8.0 正式版 8.0.18 已发布,MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量 ...