Docker

来源:互联网 发布:淘宝耐克旗舰店是真的 编辑:程序博客网 时间:2024/05/17 23:55

1 安装 docker

1.1 CentOS 7

推荐用 docker 1.8。
sudo yum remove -y docker
sudo rpm -Uvh https://yum.dockerproject.org/repo/main/centos/7/Packages/docker-engine-1.8.3-1.el7.centos.x86_64.rpm
 
# 永久关闭 selinux
sudo sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
 
# 临时关闭 selinux,无需重启
sudo setenforce 0
 
# Docker 默认 bridge 网段为 172.17.0.0/24,和生产环境网段冲突,比如无法访问。
# 可通过 --bip 参数指定 bridge 网段优化。若用内网明文 registry 需配置 --insecure-registry
#
sudo sed -i 's|ExecStart=/usr/bin/docker.*|ExecStart=/usr/bin/docker daemon -H fd:// --bip 10.255.255.1/24 --insecure-registry 192.168.0.0/16|' \
    /usr/lib/systemd/system/docker.service
 
sudo systemctl daemon-reload
sudo service docker restart
 
# 如果服务起不来,参考:https://github.com/docker/machine/issues/1662
# 解决办法是先删除 docker0 上的 ip
#
IP=$(/sbin/ip a show dev docker0 | grep -w inet | awk '{print $2}')
sudo /sbin/ip a del dev docker0 $IP
sudo service docker restart


1.2 配置无需 sudo 使用 docker

查看 /var/run/docker.sock 文件的属组,通常它是 dockerroot,然后将自己的用户名加入到同组,重登录即可。


# 示例输出:srw-rw---- 1 root docker 0 Oct 15 10:12 /var/run/docker.sock
ls -l /var/run/docker.sock
 
sudo usermod -aG docker $USER
 
# 需要重新登录生效,或者当前 shell 临时生效
newgrp docker



1.3  Docker 仓库


# TODO: 域名
 
docker pull 192.168.104.19:5000/centos6
 
# Tag 一个短名字方便自己创建新容器
docker tag 192.168.104.19:5000/centos6 cent6


daocloud.io 镜像


1.4 启动 Container


以下命令行启动一个 centos 6 的容器,命名为 mycontainer 并运行交互式 shell。命令行较长,强烈建议写一个脚本,参考 https://raw.githubusercontent.com/ymattw/bin/master/docker-run

docker run -it -v /home:/home -v /root:/root --name mycontainer --hostname mycontainer cent6 /bin/bash

选项说明:

  • -it 确保进入交互式模式(有 stdin, 有终端 tty 输入)
  • -v 指定将宿主机的目录 mount 进容器
  • --name 指定容器名字
  • --hostname 设定容器主机名
  • cent6 指定使用以上 tag 的 centos 6 的镜像
  • /bin/bash 是进入容器后启动的命令

其他有用的参数:

  • -w working-dir(如 -w `pwd`)指定进入容器后的起始工作目录


常用命令


docker help
docker help run
docker pull centos:6  # 从 hub.docker.com 获取镜像
docker run -it -v /home:/home -v /root:/root --name mycontainer --hostname mycontainer cent6 /bin/bash
docker stop cent6
docker start -ai cent6
docker run --name mydetached cent6 /path/to/myapp
docker attach mydetached
docker ps
docker ps -a
docker images
docker rm mycent6
docker rmi centos:5

0 0
原创粉丝点击