注:博主系统是ubuntu,不是centOS。


这里举个例子,来熟悉一下docker的常用命令,我们在Docker上拉取一个mysql镜像,然后启动一个mysql容器。


1.查找镜像

root@iZuf6axmuekh1n14dwcufmZ:~# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relati... 5631 [OK]
mariadb MariaDB is a community-developed fork of M... 1748 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Crea... 387 [OK]
hypriot/rpi-mysql RPi-compatible Docker Image with Mysql 78
zabbix/zabbix-server-mysql Zabbix Server with MySQL database support 75 [OK]
centurylink/mysql Image containing mysql. Optimized to be li... 58 [OK]
zabbix/zabbix-web-nginx-mysql Zabbix frontend based on Nginx web-server ... 41 [OK]
tutum/mysql Base docker image to run a MySQL database ... 31
1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5 ubuntu-16-nginx-php-phpmyadmin-mysql-5 24 [OK]
mysql/mysql-cluster Experimental MySQL Cluster Docker images. ... 19
centos/mysql-57-centos7 MySQL 5.7 SQL database server 17
schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic back... 16 [OK]
linuxserver/mysql A Mysql container, brought to you by Linux... 14
zabbix/zabbix-proxy-mysql Zabbix proxy with MySQL database support 10 [OK]
centos/mysql-56-centos7 MySQL 5.6 SQL database server 7
openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 ima... 6
dsteinkopf/backup-all-mysql backup all DBs in a mysql server 3 [OK]
circleci/mysql MySQL is a widely used, open-source relati... 3
frodenas/mysql A Docker Image for MySQL 3 [OK]
cloudposse/mysql Improved `mysql` service with support for ... 0 [OK]
cloudfoundry/cf-mysql-ci Image used in CI of cf-mysql-release 0
inferlink/landmark-mysql landmark-mysql 0 [OK]
astronomerio/mysql-sink MySQL sink 0 [OK]
openzipkin/zipkin-mysql Mirror of https://quay.io/repository/openz... 0
ansibleplaybookbundle/mysql-apb An APB which deploys RHSCL MySQL 0 [OK]

2.拉取镜像

root@iZuf6axmuekh1n14dwcufmZ:~# docker pull mysql

3.查看镜像


root@iZuf6axmuekh1n14dwcufmZ:~#docker images 
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat latest 3dcfe809147d 2 days ago 558 MB
mysql 5.7 7d83a47ab2d2 3 days ago 408 MB

4.启动镜像

root@iZuf6axmuekh1n14dwcufmZ:~#docker run --name mysql1 -p3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 
3b0b968bf9f7dc1276d49bbdc0bf9e6f0663f4d12c6cd26426f76fd224003812

这里注意:--name:是你自己起的名字,就向你新建一个类,你这个总得有个类名吧

  -p:映射端口,左边是你访问时的端口,右边是容器内部的端口

 -e:用户名

 -d:后台运行

 后面的mysql:5.7,是依托哪个镜像哪个版本启动

5.查询状态


root@iZuf6axmuekh1n14dwcufmZ:~# docker ps -a 
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3b0b968bf9f7 mysql:5.7 "docker-entrypoint..." 10 seconds ago Up 8 seconds 0.0.0.0:3306->3306/tcp mysql1


此时,这个mysql就可以链接使用了

6.停止容器


root@iZuf6axmuekh1n14dwcufmZ:~#docker stop 
mysql1

7.移除容器


root@iZuf6axmuekh1n14dwcufmZ:~#docker rm mysql1 
mysql1

8.查看容器完整id

root@iZuf6axmuekh1n14dwcufmZ:~# docker inspect -f '{{.Id}}' mysql1
4ce1634ce6f17474c8e6696bcf428e621f8c9572e1387316cf8183c97f4ad271

9.进入容器内部

root@iZuf6axmuekh1n14dwcufmZ:~# docker exec -it mysql1 /bin/bash
root@4ce1634ce6f1:/# ls
bin boot dev docker-entrypoint-initdb.d entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var


10.其他命令及参数解释:

-i : 表示允许我们对容器内的STDIN进行交互

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

/bin/bash:这将在容器内启动bash shell

-d : 表示告诉docker运行容器在后台模式运行

-p : 表示通知docker所需要的网络端口映射从主机映射到容器内,-p 1234:3306 ,这样的映射,我们外界访问是访问1234端口

docker version : 会返回docker客户端版本信息,和docker的编程语言Go的版本信息

docker :  只输入docker,会列出docker中的所有可用命令列表,docker --help 也有此作用

docker logs : 看容器中的日志记录

docker port images port :查看指定容器imges的端口port映射到宿主机的端口号

docker top images : 查看images容器的进程

docker inspect images : 查看容器的底层信息,它会返回一个JSON文件记录docker容器的配置和状态信息。

停用全部运行中的容器:
docker stop $(docker ps -q)1
删除全部容器:
docker rm $(docker ps -aq)1
一条命令实现停用并删除容器:
docker stop $(docker ps -q) & docker rm $(docker ps -aq)