Docker从入门到使用
最近把家里闲置的斐讯N1又用了起来,加了一个闲置的移动因盘,瞬间空间不再有限制,可以多玩一些应用,也可以多跑跑服务了,斐讯N1相比树莓派而言性能上还是好很多的,毕竟是4核1.5G,还有2G的内存,速度什么的完全碾压树莓派,另外还有个千兆的以太网口,不过不知道是家里的路由还是其它设备的问题,网络传输的速度我一直没能跑太高。好了闲话不多说,我们回归正题,还是看看Docker怎么用。
安装
Docker的安装比较简单,一般直接用官方给出的安装脚本就可以了。
wget -qO- https://get.docker.com/ | sh
安装完成之后会有如下的提示:
If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:
sudo usermod -aG docker major
Remember that you will have to log out and back in for this to take effect!
意思是说如果想用标准用户用docker的话,需要把用户加到docker
组,所以我们直接运行sudo usermod -aG docker major
来把当前用户加到docker
组,记得还要注销重登录才有效。
安装之后我们通过如下命令开启服务,并测试服务是否正常运行:
sudo service docker start
docker run hello-world
使用
安装完成之后我们可以通过以下的方式运行docker
docker run -i -t ubuntu:15.10 /bin/bash
上述命令中run表示运行一个镜像, -i
表示交互式输入, -t
表示运行一个终端, /bin/bash
表示运行的命令,我们还可以通过-d
让容器转入后台运行。
启动docker
之后,我们可以通过docker ps
查看正在运行的容器列表。
另外可以通过docker logs 2b1b7a428627
查看容器的输出2b1b7a428627
是PS中查到的容器的ID。
运行完成之后,我们可以通过docker stop 2b1b7a428627
停止一个容器。
docker images
可以列出所有本地已经拉取的镜像。
端口转发
运行docker之后一般对于网路应用我们需要把docker里面的端口映射到本地端口,可以通过-p
完成这个操作:
docker run -d -p 127.0.0.1:5001:5000 training/webapp python app.py
其中127.0.0.1:5001
是本地端口,5000
是容器里面的端口。
指定名称
运行docker的时候可以通过--name
给容器指定一个名称,这样后面就可以通过这个名称对容器进行管理。
目录映射
有些时候对于docker里面的数据我们希望在本地可以查看,或者本地的配置文件可以传递到docker内部,这个时候我们就需要用到目录映射,目录映射通过-v
参数完成
-v $PWD/www:/www #将主机中当前目录下的www挂载到容器的/www
启动MySQL容器示例
我们可以通过如下脚本启动一个MySQL
实例:
docker run -p 3306:3306 \
--name mysql \
-v /path/to/local/conf:/etc/mysql/conf.d \
-v /path/to/local/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456
-d mysql:5.6
上面命令中-e
可以指定一个系统环境变量,这里通过系统环境变量的方式设置了MySQL
的root
账户密码。
命令索引
生命周期管理: run, start/stop/restart, kill, rm, pause/unpause, create, exec;
容器操作:ps, inspect, top, attach, events, logs, wait, export, port;
镜像仓库: login, pull, push, search
镜像管理: images, rmi, tag, build, history, save, import;
最后更新于 2018-12-05 14:23:37 并被添加「」标签,已有 2172 位童鞋阅读过。
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。