海运的博客

Docker基础使用

发布时间:September 24, 2014 // 分类:Docker // No Comments

Centos下直接安装:

yum install docker-io
/etc/init.d/docker start

使用docker官方源安装:

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

使用mirror,修改/etc/docker/daemon.json,然后重启docker。

{
  "registry-mirrors": [
    "https://dockerhub.azk8s.cn",
    "https://hub-mirror.c.163.com"
  ]
}

查看mirror是否生效:

docker info

搜索镜像:

docker search ubuntu

从官网下载镜像:

docker pull ubuntu:19.10
#使用mirror下载镜像
docker pull dockerhub.azk8s.cn/library/ubuntu:19.10

也可使用Openvz模板制作镜像:

wget http://download.openvz.org/template/precreated/suse-13.1-x86_64-minimal.tar.gz
cat suse-13.1-x86_64-minimal.tar.gz|docker import - suse:13.1

列出所有镜像:

docker images

查看镜像配置信息:

docker inspect ubuntu:19.10

从指定镜像生成一个容器并执行命令,exit后容器会结束,按键CTRL+P+Q退出容器不结束。

docker run --name test -i -t --hostname "docker-19.10" --network host ubuntu:19.10 /bin/bash
#指定name,后续可使用docker start 容器名称启动
#-p <host_port:contain_port>
#-P随机端口
#-v <host_path:container_path>

复制文件到容器内:

docker cp file test:/tmp/

查看所有的容器,包含已退出的:

docker ps -a

重新启动已退出的容器:

docker start <容器ID>/<容器名称>
#启动并attach
docker start -ai <容器ID>/<容器名称>

attach运行的容器:

docker attach <容器ID>

build镜像,Dockerfile文件:

FROM ubuntu:19.10
RUN apt-get update && apt-get -y install vim 
docker build -t vim . -f Dockerfile 

将指定容器保存为镜像:

docker commit <容器ID> <镜像名字>

保存镜像:

docker save ubuntu:19.10 > ubuntu.tar

导入镜像:

docker load < ubuntu.tar

导出导入容器:
导入镜像:

docker export <容器ID> > export.tar  
cat export.tar | docker import - export:latest 

删除docker容器:

docker rm <容器ID>
#删除所有,先停止所有docker容器
docker stop `docker ps -a -q`
docker rm `docker ps -a -q`

删除镜像IMAGE:

docker rmi <镜像id>
#删除所有
docker rmi `docker images -q`

容器运行中文件操作:

docker inspect -f '{{.Id}}' <容器id或name>
ls /var/lib/docker/devicemapper/mnt/<上面命令返回的id>/rootfs/etc/

执行运行中容器命令,如进入bash:

docker exec -it <容器id或name> bash

进入运行中容器:

PID=$(docker inspect --format {{.State.Pid}} <container_name_or_ID>)
nsenter --target $PID --mount --uts --ipc --net --pid

运行中容器使用iptables端口眏射:

#获取容器IP
docker inspect <容器id或name>|grep IPAddress
#DNAT
iptables -t nat -A PREROUTING -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.7:80

更详细的资料:http://blog.tankywoo.com/docker/2014/05/08/docker-4-summary.html
自建私有仓库:http://www.vpsee.com/2013/11/build-your-own-docker-private-regsitry-service/
https://github.com/docker-practice/docker-registry-cn-mirror-test
https://yeasy.gitbooks.io/docker_practice/

标签:docker

评论已关闭

分类
最新文章
最近回复
  • opnfense: 谢谢博主!!!解决问题了!!!我之前一直以为内置的odhcp6就是唯一管理ipv6的方式
  • liyk: 这个方法获取的IPv6大概20分钟之后就会失效,默认路由先消失,然后Global IPV6再消失
  • 海运: 不好意思,没有。
  • zongboa: 您好,請問一下有immortalwrt設定guest Wi-Fi的GUI教學嗎?感謝您。
  • 海运: 恩山有很多。
  • swsend: 大佬可以分享一下固件吗,谢谢。
  • Jimmy: 方法一 nghtp3步骤需要改成如下才能编译成功: git clone https://git...
  • 海运: 地址格式和udpxy一样,udpxy和msd_lite能用这个就能用。
  • 1: 怎么用 编译后的程序在家里路由器内任意一台设备上运行就可以吗?比如笔记本电脑 m参数是笔记本的...
  • 孤狼: ups_status_set: seems that UPS [BK650M2-CH] is ...