Docker安装和使用

作者:陆金龙    发表时间:2022-04-20 09:18   

关键词:  

1. 虚拟化技术

虚拟化技术指的是软件层面实现虚拟化的技术。

虚拟机:VMware、VirtualBox。虚拟机通常包括整个操作系统和应用程序,里面运行的是一个真实的操作系统。

JVM:是Java编程语言的虚拟机,它是Java程序的运行环境,虚拟硬件架构(如处理器、堆栈、寄存器等),具有相应的指令系统。

应用程序虚拟化:例如容器技术Docker,解决了易用性问题。还有Kubernetes等。

网络虚拟化:例如VPN、VMware NSX等

2.认识Docker

Docker是基于Go语言实现的开源容器项目。

Docker属于操作系统级虚拟化,比虚拟机更轻量。

重点理解镜像、仓库、容器几个概念。

(1)镜像(Image):应用程序及其运行时环境全部打包到一个Dockerfile文件中。

    镜像是静态的只读文件,是创建容器的基础。

    运行容器前需要本地存在对应的镜像(如果没有,Docker会尝试从默认的镜像仓库下载)。

(2)仓库(Repository):存放镜像文件的地方。

(3)容器(Container):镜像的一个运行实例

应用场景:编程语言、数据库、缓存系统、消息队列...

3.相关命令

安装Docker:curl -sSL https://get.daocloud.io/docker | sh

启动Docker:systemctl start docker

查找镜像:docker search [image-name]

拉取镜像:docker pull [image-name]

运行镜像启动容器:docker run -itd -p [port:port] --name [容器名] [镜像名]

进入容器: docker exec -it [容器别名] /bin/bash

4.Docker安装卸载

4.1 安装Docker

curl -sSL https://get.daocloud.io/docker | sh

如果报错No Presto metadata available for base No Presto metada,则执行yum clean all后重新安装。

启动 Docker

systemctl start docker

测试

docker run hello-world

4.2 卸载Docker

yum remove docker-ce

rm -rf /var/lib/docker

5.使用Docker

以MySQL和RabbitMQ为例。

5.1安装MySQL

(1)拉取mysql:

  docker pull mysql:latest

(2)查看镜像:

 docker images

 

(3)运行容器(运行后即可使用navicat等客户端连接了):

docker run -itd -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql-latest mysql:latest

-i:以交互模式运行,通常配合-t
-t:为容器重新分配一个伪输入终端,通常配合-i
-d:后台运行容器
-p:端口映射,格式为主机端口:容器端口
-e:设置环境变量,这里设置的是root密码
--name:设置容器别名,这里是mysql-latest 
镜像名:最后一部分为镜像名,这里的镜像名是mysql:latest
   docker run 等价于先执行docker create,再执行docker start。

(4)进入容器

   docker exec -it mysql-latest /bin/bash

(5)退出容器

   exit

5.2 安装rabbitmq

(1)查找镜像

docker search rabbitmq

(2)安装镜像(直接安装最新的

docker pull rabbitmq 或

docker pull rabbitmq:management

(3)运行容器
docker run -d --name rabbitmq -p 15672:15672 -p 5673:5672 rabbitmq
     
  启动管理后台
rabbitmq-plugins enable rabbitmq_management

(4)进入容器

   进入rabbitmq这个容器中,可执行rabbitmq命令

[root@localhost ~]# docker exec -it rabbitmq /bin/bash
root@61e20885dd2a:/# 

5.3 安装Java8

(1)查找java:8镜像

   docker search java:8

  (2)  拉取镜像

  docker pull java:8

  (3) 运行容器

 docker run -d java:8

6.更多命令

查看镜像

docker images

删除镜像

docker rmi <image id>

停止、启动、杀死、重启一个容器

docker stop Name或者ID  
docker start Name或者ID  
docker kill Name或者ID  
docker restart name或者ID

删除容器

docker rm Name

删除所有停止的容器

docker rm $(docker ps -a -q)