Docker需要一个64位系统的红帽系统,内核的版本必须大于3.10,http://my.oschina.net/u/232595/blog/632278,建议安装centos7
参考资料:https://www.gitbook.com/book/yeasy/docker_practice
安装docker
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum makecache fast
sudo yum -y install docker-ce
删除docker
yum remove docker*
启动docker
sudo systemctl start docker
pull容器镜像
阿里云镜像https://dev.aliyun.com/search.html
docker pull registry.cn-hangzhou.aliyuncs.com/1hpc/centos
查看镜像
docker images
删除镜像
docker rmi 镜像id
启动容器
docker run 镜像名
启动结束的容器
docker start 容器名称
启动交互式容器(可以输入命令行)
docker run -t -i 镜像名称 /bin/bash
启动交互式容器(可以输入命令行,同时可以隐射端口)
docker run -t -i -v /localpath:/app -p ip:port1:port2 镜像名称 /bin/bash
localpath为本地地址
app为docker内地址
ip为访问ip
port1为访问端口
port2为容器内应用端口号
例如容器内启动mysql 3306端口
实体机访问地址为127.0.0.1 3307端口
docker run -t -i -p 127.0.0.1:3307:3306 镜像名称 /bin/bash
关闭容器
docker stop 容器名称
删除容器
docker rm 容器名称
查看运行的容器
docker ps -a
查看容器ip
docker inspect 容器名
查看容器端口隐射
docker port 容器名
进入容器
docker exec -it 容器id /bin/bash
docker exec -u root -it 容器id /bin/bash
FAQ:
1unable to find user root no matching entries in passwd file
https://stackoverflow.com/questions/41636759/unable-to-find-user-root-no-matching-entries-in-passwd-file
2安装php扩展:https://my.oschina.net/antsky/blog/1591418
3运行中的docker配置端口映射(添加/删除)
-
添加端口映射
a, 获取容器ip docker inspect $container_name | grep IPAddress b. 添加转发规则 iptables -t nat -A DOCKER -p tcp --dport $host_port -j DNAT --to-destination $docker_ip:$docker_port
-
删除端口映射规则
a. 获取规则编号 iptables -t nat -nL --line-number b. 根据编号删除规则 iptables -t nat -D DOCKER $num
4Docker在windows下无法开启伪终端解决方法the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty'
解决办法:docker-machine ssh default