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
|