docker 学习笔记

467 查看

ubuntu 14.10下docker的使用笔记
1 docker 安装

curl -sSL https://get.docker.com/ | sh

2 确认docker是否安装成功

docker version

3 搜索镜像

docker search ubuntu

4 获取镜像

docker pull ubuntu:14.04
docker images #查看本地所有镜像

5 运行镜像,运行起来的镜像就叫做容器了,仔细看,你会发现终端交互的用户名变掉了,说明我们进入到了容器的内部。修改服务器的 时区,软件源等(参考https://segmentfault.com/a/1190000004352401

docker run -it ubuntu:14.04 /bin/bash

6 现在我们所做的任何操作都是针对于目前容器而言的,不会影响到原来的系统,例如,我们在里面安装下nginx服务器,和正常系统一样使用,运行如下命令:

apt-get install nginx
ps:需要修改配置 daemon off;或则docker以守护进程运行会失败。
在生成mysql镜像的时候,需要在初始创建bash容器的时候就加上-v /data/mysql:/var/lib/myql选项(docker run  -v /opt/dockerData/mysql:/var/lib/mysql -it 802bff3e28e6 /bin/bash)。个人理解是因为mysql产生数据需要映射。

7 退出容器

exit 或 ctrl+d

8 ps命令可以查看我们当前都运行了哪些容器,加上-a参数后就表示运行过哪些容器,因为我们刚刚已经退出了安装nginx的容器,因此我现在想查看它的话,需要使用-a参数,执行如下命令

docker ps -a

8.1 进入已停止的容器

docker start 容器id
docker attach 容器id

NOTE 进入之后可能需要CTRL+C一下

9 commit命令用来将容器转化为镜像,运行下面的命令,我们可以讲刚刚的容器转换为像,()

docker commit -m "add nginx" -a "hufeng" c012b109b24a hufeng/nginx:v1 

其中,-m参数用来来指定提交的说明信息;-a可以指定用户信息的;c012b109b24a 代表的是容器的id;hufeng/nginx:v1指定目标镜像的用户名、仓库名和 tag 信息。创建成功后会返回这个镜像的 ID 信息 。

10 停止容器

docker stop 4696891a2388

10.1 清除所有停止的docker容器

docker rm $(docker ps -a -q)

11 强制删除镜像

docker rmi -f 691cd86f9ff1  

12 将宿主机的端口和目录绑定到docker虚拟机

-d 以守护进程运行
-p 绑定的端口
-v 绑定的目录


docker run -d -p 9010:9000 -v /www:/www a7322cfb6259
docker run  -d -p 8090:80 -v /www:/usr/share/nginx/html d53bfcc6255e  
docker run  -d -p 8090:80 -p 3222:22 -v /www:/usr/share/nginx/html d53bfcc6255e  /user/sbin/sshd -D
#docker run -d -p 8400:3306 testmysql mysqld_safe
docker run -d -p 8301:3306 -v /opt/dockerData/mysql:/var/lib/mysql efa2dae55c8b  mysqld