《Docker技术入门与实践》Docker入门
官方文档
1.安装
ubuntu:
apt-get update
apt-get install -y docker.io
ln -sf /usr/bin/docker.io /usr/local/bin/docker
sed -i "$acomplete -F _docker docker' /etc/bash_completion.d/docker.io
或者
apt-get install -y lxc-docker
centos:
#建议直接使用centos7
docker install -y docker
2.获取镜像
sudo docker pull ubuntu:14.01
sudo docker pull dl.dockerpool.com:5000/ubuntu
利用镜像创建容器
docker run -t -i ubuntu /bin/bash
查看本地镜像
docker images
删除本地镜像
docker rmi $image_id
为镜像打标签
docker tag dl.dockerpool.com:5000/ubuntu:latest ubuntu:latest
获取镜像详细信息
docker inspect $image_id
3.镜像
寻找镜像
docker search $image_name
-
基于已有镜像创建镜像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
1.1 基于本地模板导入
sudo cat ubuntu_14.04.tar |docker import -u ubuntu:14.0
1.2 导出
docker export $image_id >ubuntu_14.04.tar
-
存入和载出镜像
docker save -o xx.tar $repository:$tag docker load --input ubuntu_14.04.tar docker load < ubuntu_14.04.tar
-
上传镜像
sudo docker tag test:latest user/test:latest sudo docker push usr/test:latest
4.容器
-
创建容器
sudo docker create -it ubuntu:latest
创建后处于停止状态,可以使用docker start $container_id 来启动
docker run = docker create + docker start
推荐使用run 每次开启一个新的容器。
eg: docker run ubuntu /bin/echo “Hello World”
-t 分配一个伪终端(pseudo-tty)
-i 让容器的标准输入打开
ctrl +d 或者 exit退出容器。 注意,退出后 容器也停止了。
守护运行
-d 守护状态
-
终止容器
docker stop $container_name
可以再使用docker start $container_name
来启动
重启容器
docker restart $container_name
-
进入容器
docker attach $container_name
这里attach command, 如果command 不是/bin/bash 也进入不了容器
docker exec -ti $container_name /bin/bash
查看容器进程
docker inspect --format "{{.State.Pid}}" $container_id
-
删除容器
docker rm $container_id
注意验证 grep的精确性,否则会误删
docker rm $((docker ps -a )|grep xx| awk '{printf "%s\n",$1}') ps -a |grep xx | awk '{printf "%s\n",$1}' | xargs -i docker rm {}
-
导入导出容器
docker ps -a
导出
docker export $container_name >xx.tar
导入
cat xx.tar |sudo docker import test/xx:v1.0
5.仓库
-
Docker Hub
登陆
docker login从私有下载镜像
docker pull my.com:5000/ubuntu:12.04更新镜像标签
docker tag my.com:5000/ubuntu:12.04 ubuntu:12.05 -
创建私有仓库
通过registry镜像来搭建sudo docker run -d -p 5000:5000 registry
运行镜像,将上环的镜像放在/var/data/registry目录(默认在/tmp/registry下)
sudo docker run -d -p 5000:5000 -v /var/data/registry:/tmp/registry registry
查看仓库
curl http://localhost:5000/v2/_catalog
打标签并推送到私有仓库
docker tag member:v1 127.0.0.1:5000/member docker push 127.0.0.1:5000/member
使用任意一台机器访问下载镜像
这里如果不指定端口会默认下载https
docker pull my.com:5000/$container_id:$version