1.核心概念
docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
docker客户端(Client):连接docker主机进行操作;
docker仓库(Registry):用来保存各种打包好的软件镜像;
docker镜像(Images):软件打包好的镜像;放在docker仓库中;
docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用
使用Docker的步骤:
1)、安装Docker
2)、去Docker仓库找到这个软件对应的镜像;
3)、使用Docker运行这个镜像,这个镜像就会生成一个Docker容器;
4)、对容器的启动停止就是对软件的启动停止;
2.安装Docker
regan@regan-VPCEH15YC:~$ sudo apt install docker.io
tips:如果安装失败请检查当前系统的内核版本,如果成功忽略此步骤
确保自己的linux系统内核版本高于3.10,并且系统是64位,才能体验Docker哦regan@regan-VPCEH15YC:~$ uname -ir 4.15.0-54-generic x86_64
regan@regan-VPCEH15YC:~$ systemctl start docker //启动docker
regan@regan-VPCEH15YC:~$ docker -v //查看docker版本
Docker version 18.09.7, build 2d0083d
regan@regan-VPCEH15YC:~$ sudo systemctl enable docker //设置docker开机自启
[sudo] regan 的密码:
Synchronizing state of docker.service with SysV init with /lib/systemd/systemd-sysv-install...
Executing /lib/systemd/systemd-sysv-install enable docker
3.安装Mysql 5.5&&删除Mysql
regan@regan-VPCEH15YC:~$ sudo docker search mysql //从docker hub搜索mysql
[sudo] regan 的密码:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 8383 [OK]
mariadb MariaDB is a community-developed fork of MyS… 2881 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… 624 [OK]
percona Percona Server is a fork of the MySQL relati… 438 [OK]
centurylink/mysql Image containing mysql. Optimized to be link… 60 [OK]
centos/mysql-57-centos7 MySQL 5.7 SQL database server 59
mysql/mysql-cluster Experimental MySQL Cluster Docker images. Cr… 46
deitch/mysql-backup Automated and scheduled mysql database dumps… 39 [OK]
tutum/mysql Base docker image to run a MySQL database se… 32
schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic backup… 28 [OK]
....
[docker hub]查看当前所需的mysql版本信息
regan@regan-VPCEH15YC:~$ sudo docker pull mysql:5.5 //下载5.5版本,没有设置默认latest版本
5.5: Pulling from library/mysql
743f2d6c1f65: Pull complete
3f0c413ee255: Pull complete
aef1ef8f1aac: Pull complete
f9ee573e34cb: Pull complete
3f237e01f153: Pull complete
03da1e065b16: Pull complete
04087a801070: Pull complete
7efd5395ab31: Pull complete
1b5cc03aaac8: Pull complete
2b7adaec9998: Pull complete
385b8f96a9ba: Pull complete
Digest: sha256:12da85ab88aedfdf39455872fb044f607c32fdc233cd59f1d26769fbf439b045
Status: Downloaded newer image for mysql:5.5
regan@regan-VPCEH15YC:~$ sudo docker images //查看本地镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.5 d404d78aa797 2 months ago 205MB
regan@regan-VPCEH15YC:~$ sudo docker rmi d404d78aa797 //删除下载的镜像,IMAGES ID
Untagged: mysql:5.5
Untagged: mysql@sha256:12da85ab88aedfdf39455872fb044f607c32fdc233cd59f1d26769fbf439b045
Deleted: sha256:d404d78aa797c87c255e5ae2beb5d8d0e4d095f930b1f20dc208eaa957477b74
Deleted: sha256:8ae7b3986b745c9cea4ea3789277dbf8543d6caed82c23d1ec19637813376df5
Deleted: sha256:6aaf52074d0d6ec3263af5f53b921a91ba3ddbeb2fece1a82ebe1bc5086c3814
Deleted: sha256:cf0a74866630c5d7ed05927cf981ac93b63ba83407872c9c0fbe0486d5f9806e
Deleted: sha256:e06cee897f9eb6bb5769f93cf6cd0285bb773d7e2bad6dfd5592a8682a6e6740
Deleted: sha256:4354e03e5a414adc57def51226d72fa2d117875a6c9665561a7c0fc85d23c46f
Deleted: sha256:647b973285178c7d4bf022c31baac404e0947d37be8e8e85731de8f7ca7e70e6
Deleted: sha256:c75ab456a585af40ca2ec8488164230deb81a1739d868604cb7b6661c24e37b5
Deleted: sha256:50a75eb6a0b2254fe5d96f999cc2087e72d515c93509a816bbd9ffb707a3b1b0
Deleted: sha256:1ae6616333a66450738a72a75c03bdf0236e0425ba0336ac5cdbe470ab6f4a3e
Deleted: sha256:68e318bd9263aedd19d9d73b051a262fa57e2a16f9c81c8b39163601020cd405
Deleted: sha256:6270adb5794c6987109e54af00ab456977c5d5cc6f1bc52c1ce58d
4.常用命令和操作
1).镜像操作
2).容器操作
regan@regan-VPCEH15YC:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat latest 89481b5d9082 2 days ago 506MB
mysql 5.5 d404d78aa797 2 months ago 205MB
regan@regan-VPCEH15YC:~$ sudo docker run --name myTomcat -d -p 8080:8080 tomcat:latest //启动docker容器并取名为myTomcat -d:后台运行 -p 8080(服务器端口):8080(容器端口) 将服务器的端口映射到容器的端口 ; --name myTomcat 可以省略
407aaf30621403bab4f1ed91fe25d5d4dac585f682f4cbff67454a5fc052c84f
regan@regan-VPCEH15YC:~$ sudo docker ps //查看当前运行的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
407aaf306214 tomcat:latest "catalina.sh run" 9 seconds ago Up 7 seconds 8080/tcp myTomcat
regan@regan-VPCEH15YC:~$ sudo docker stop 407aaf306214 //停止container id:407aaf306214的容器
407aaf306214
regan@regan-VPCEH15YC:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
regan@regan-VPCEH15YC:~$ sudo docker ps -a //查看所有的docker容器,包括已经停止的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
407aaf306214 tomcat:latest "catalina.sh run" 57 seconds ago Exited (143) 20 seconds ago myTomcat
regan@regan-VPCEH15YC:~$ sudo docker start 407aaf306214 //启动container id:407aaf306214的容器
407aaf306214
regan@regan-VPCEH15YC:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
407aaf306214 tomcat:latest "catalina.sh run" About a minute ago Up 5 seconds 8080/tcp myTomcat
...
//执行下面语句,确保已经将container id:407aaf306214的容器停止
regan@regan-VPCEH15YC:~$ sudo docker rm 407aaf306214 //将container id:407aaf306214容器移除
407aaf306214
regan@regan-VPCEH15YC:~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
总结:(默认是在root用户下进行)
1.docker run --name myTomcat -d -p 8080:8080 tomcat:latest :
启动docker容器并取名为myTomcat(具体启动方式参考docker hub 文档)
-d:后台运行
-p 8080(服务器端口):8080(容器端口) 将服务器的端口映射到容器的端口
--name myTomcat 可以省略
Tips:如果映射端口失败,请关闭防火墙,或者设置端口开放
- docker ps :查看运行中的容器 参数-a 查看所有的容器(包括已经停止)
3.docker stop 容器id :停止
4.docker start 容器id :启动
5.docker rm 容器id :删除
6.docker logs 容器id :查看容器的日志
点击查看官方命令文档
参考博客
Ubuntu系统下载安装启动Docker
【 全干货 】5 分钟带你看懂 Docker !
推荐网站
Docker中文社区
Docker入门教程
菜鸟教程-docker教程