• Docker学习2-Docker的基本命令与使用


    前言:

    前些天有人问镜像是什么?容器有是什么?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… 8690 [OK] 
    mariadb MariaDB is a community-developed fork of MyS… 3034 [OK] 
    mysql/mysql-server Optimized MySQL Server Docker images. Create… 643 [OK]
    centos/mysql-57-centos7 MySQL 5.7 SQL database server 63 
    centurylink/mysql Image containing mysql. Optimized to be link… 61 [OK]
    mysql/mysql-cluster Experimental MySQL Cluster Docker images. Cr… 53 
    deitch/mysql-backup REPLACED! Please use http://hub.docker.com/r… 41 [OK]
    bitnami/mysql Bitnami MySQL Docker Image 36 [OK]
    tutum/mysql Base docker image to run a MySQL database se… 34 
    schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic backup… 28 [OK]
    prom/mysqld-exporter 23 [OK]
    linuxserver/mysql A Mysql container, brought to you by LinuxSe… 22 
    centos/mysql-56-centos7 MySQL 5.6 SQL database server 16 
    circleci/mysql MySQL is a widely used, open-source relation… 15 
    mysql/mysql-router MySQL Router provides transparent routing be… 13 
    arey/mysql-client Run a MySQL client from a docker container 11 [OK]
    imega/mysql-client Size: 36 MB, alpine:3.5, Mysql client: 10.1.… 8 [OK]
    openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 image… 6 
    yloeffler/mysql-backup This image runs mysqldump to backup data usi… 6 [OK]
    fradelg/mysql-cron-backup MySQL/MariaDB database backup using cron tas… 4 [OK]
    genschsa/mysql-employees MySQL Employee Sample Database 2 [OK]
    ansibleplaybookbundle/mysql-apb An APB which deploys RHSCL MySQL 2 [OK]
    jelastic/mysql An image of the MySQL database server mainta… 1 
    widdpim/mysql-client Dockerized MySQL Client (5.7) including Curl… 0 [OK]
    monasca/mysql-init A minimal decoupled init container for mysql 0

    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 4 days ago 80.6MB
    gitlab/gitlab-ce latest 7783a0d67474 7 days ago 1.77GB
    mysql 5.7 383867b75fd2 4 weeks ago 373MB
    alpine latest 961769676411 7 weeks ago 5.58MB
    rethinkdb latest d8636baa6e8e 3 months ago 185MB
    twang2218/gitlab-ce-zh latest 18da462b5ff5 14 months ago 1.61GB
    jenkins latest cd14cecfdb3a 15 months ago 696MB
    swarm latest ff454b4a0e84 16 months ago 12.7MB
    ehazlett/curl latest c8127af118e0 2 years ago 6.38MB
    dockerclub/shipyard latest 2ac2c13dfa84 3 years ago 61.4MB
    shipyard/docker-proxy latest cfee14e5d6f2 3 years ago 9.47MB
    microbox/etcd latest 6aef84b9ec5a 4 years ago 17.9MB
    training/webapp latest 6fae60ef3446 4 years ago 349MB

    4、开始run一个镜像

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

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

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

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

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

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

    我们将开始安装一个mysql:

    docker run -d -p 3333:3306 --name sql -v ~/mysql/conf:/etc/mysql/conf.d -v ~/mysql/data:/var/lib/mysql -v ~/mysql/logs:/logs -e MYSQL_ROOT_PASSWORD=123456 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 3333:3306 --name sql -v ~/mysql/conf:/etc/mysql/conf.d -v ~/mysql/data:/var/lib/mysql -v ~/mysql/logs:/logs -e MYSQL_ROOT_PASSWORD=12345678 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…" 5 minutes ago Up 5 minutes 33060/tcp, 0.0.0.0:3333->3306/tcp sql

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

    5cf09c602ca6 mysql:5.7 "docker-entrypoint.s…" 7 minutes ago Up 7 minutes 33060/tcp, 0.0.0.0:3333->3306/tcp sql
    1fc6222bef2d jenkins "/bin/tini -- /usr/l…" 41 hours ago Exited (143) 2 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…" 2 hours ago Up 3 minutes 33060/tcp, 0.0.0.0:3333->3306/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

  • 相关阅读:
    MySQL主从半同步复制
    MySQL主从之延时复制
    MySQL备份
    MySQL主从介绍及搭建(异步复制)
    MySQL物理备份Xtrabackup
    MySQL数据库误删除数据恢复
    MySQL--日志
    JAVA日报
    JAVA日报
    JAVA日报
  • 原文地址:https://www.cnblogs.com/gsxl/p/11678590.html
Copyright © 2020-2023  润新知