docker 是将程序与机器隔开,使程序不受环境影响。
安装 sudo apt-get install docker.io
## 好用的一些命令
1.停用全部运行中的容器: docker stop $(docker ps -q) 1 2.删除全部容器: docker rm $(docker ps -aq) 1 3.一条命令实现停用并删除容器: docker stop $(docker ps -q) & docker rm $(docker ps -aq)
4.删除镜像
docker rm 镜像 -f # -f :停止运行的容器
把当前用户添加到docker组
sudo usermod -aG docker $USER # $USER 指当前用户
reboot # 重启
ps: 重启后我丢失了当前用户的权限,/etc/sudoers 被清空。
解决: su root vim /etc/sudoers
在切回 username用户,就好了
### 下载ubuntu镜像
sudo docker pull ubuntu:14.04
# 完成后,即可随时使用该镜像了,例如创建一个容器,让其中运行 bash 应用
-i : 可以输入命令, -t: 分配一个伪终端
sudo docker run -t -i ubuntu /bin/bash
exit 退出
# docker commit 命令来提交更新后的副本
docker commit -m "docker test" -a "by comi" 5ff1667369b6 comi_test_docker:v2
创建成功后会返回这个镜像的 ID 信息
sha256:9c50c19359b7e2d304f0fc80f0e9757983a91b1d647a44c28f34e098deb6917b
-m
来指定提交的说明信息,跟我们使用的版本控制工具一样;-a
可以指定更新的用户信息;之后是用来创建镜像的容器的 ID;最后指定目标镜像的仓库名和 tag 信息。
# 通过docker images 可以查看新建立的镜像
# 通过新建立的镜像comi_test_docker启动容器
# 导出镜像到本地文件,使用 docker save
命令
docker save -o ubuntu.tar ubuntu 导出ubuntu镜像到本地
# 本地文件再导入镜像 docker load
sudo docker load --input ubuntu.tar
sudo docker load < ubuntu.tar
这将导入镜像以及其相关的元数据信息(包括标签等)
# 删除镜像
需要删除该镜像的容器 查看所有的容器: docker ps -a
删除comi_test_docker建立的容器,通过id删除: docker rm e2c32ad8d2d7
再删除comi_test_docker镜像,通过docker images查看id: docker rmi id
### 下载nginx镜像
docker pull nginx
docker images
# 启动nginx服务,需要映射端口 -d 在后台运行 -p 80:80 , -d -p顺序不能错
docker run -p 80:80 nginx # 端口被占用,什么情况
docker run -d -p 8000:80 # 启动将本机端口映射到容器端口, 可以不指定后台
docker logs nginx容器id # 处于后台时,通过logs查看日志
docker run -it -d ubuntu:14:04 # -it进入交互模式 -d后台运行,加上-d是为了测试exec命令进入后台容器
docker exec -it bb9a74a5924a bash # -it 指定交互模式, 容器id 指定shell