docker是啥
docker是一个非常轻量级的虚拟机,需要区分清楚image和container。
命令:docker images
显示所有拥有的镜像,可用docker pull Ubuntu
添加ubuntu镜像
docker ps
显示正在运行的容器,docker ps -all
显示所有容器。
image是只可以读的,container是可读可写的。我们的操作只能是在container上。
常用命令
对容器进行交互控制
docker exec -it ‘容器id’
退出命令
exit
保存对容器的更改
docker commit ‘容器id’ demo:1.0
使用特权创建container
Docker的设计理念是在容器里面不运行后台服务,容器本身就是宿主机上的一个独立的主进程。因此尝试开启一个后台执行的进程时会报错:Failed to get D-Bus connection: Operation not permitted。
解决办法是创建一个特权容器:
docker run -d -name centos7 --privileged=true centos:7 /bin/bash
查看容器id,执行交互控制即可在docker中执行后台命令。
使用端口映射创建container
在宿主机是没有办法访问容器内运行的程序的,比如在容器内部27017端口上运行mongodb,但是本地的宿主机是无法连接的。
为了在宿主机上也能连接mongodb,需要在创建端口时做端口映射。
执行命令:docker run -itd --privileged=true -p 27010:27017 --name mongodb_container centos:centos7 /bin/bash
这样访问宿主机27010端口,相当于访问容器27017
--name 指定容器名