登录远程服务器:ssh root@0.0.0.0,root为用户名,回车输入密码
一、安装Docker
1.Mac下安装Docker
安装Docker,下载地址https://docs.docker.com/docker-for-mac/
安装教程https://github.com/widuu/chinese_docker/blob/master/installation/mac.md
安装后下载镜像timeout,需要翻墙,https://segmentfault.com/a/1190000011996587
2.Linux下安装Docker
uname -a //查看系统的版本,Ubuntu使用apt-get安装,centOS使用yum安装
Linux instance-obh3ma9w 2.6.32-696.16.1.el6.x86_64 #1 SMP Wed Nov 15 16:51:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
2.1 Ubuntu安装Docker
apt-get update
apt-get install -y docker.io
报错处理
E: Unable to locate package docker.io
E: Couldn't find any package by regex 'docker.io'
安装curl,使用curl安装
或者检查apt-get更新源,然后再次输入sudo apt-get update命令更新:
sudo gedit /etc/apt/sources.list
#使用163源 直接添加在文件后面
deb http://mirrors.163.com/ubuntu/ precise main restricted
deb-src http://mirrors.163.com/ubuntu/ precise main restricted
deb http://mirrors.163.com/ubuntu/ precise-updates main restricted
deb-src http://mirrors.163.com/ubuntu/ precise-updates main restricted
deb http://mirrors.163.com/ubuntu/ precise universe
deb-src http://mirrors.163.com/ubuntu/ precise universe
deb http://mirrors.163.com/ubuntu/ precise-updates universe
deb-src http://mirrors.163.com/ubuntu/ precise-updates universe
deb http://mirrors.163.com/ubuntu/ precise multiverse
deb-src http://mirrors.163.com/ubuntu/ precise multiverse
deb http://mirrors.163.com/ubuntu/ precise-updates multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-updates multiverse
deb http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-security main restricted
deb-src http://mirrors.163.com/ubuntu/ precise-security main restricted
deb http://mirrors.163.com/ubuntu/ precise-security universe
deb-src http://mirrors.163.com/ubuntu/ precise-security universe
deb http://mirrors.163.com/ubuntu/ precise-security multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-security multiverse
deb http://extras.ubuntu.com/ubuntu precise main
deb-src http://extras.ubuntu.com/ubuntu precise main
若安装完执行docker version报错:Segmentation Fault or Critical Error encountered. Dumping core and aborting
一是检查系统版本是不是32位系统,官方发布的docker二进制形式文件是64位的,但是如果你使用的是32的系统肯定是不能运行的;
二是centOS下安装Docker出现这个问题,是因为有的linux版本中使用yum install docker 安装运行时就会这个错误。解决方法是:
yum list installed |grep docker //找到安装的docker
yum -y remove <docker名> //卸载
yum -y install docker-io//注意要安装包带后缀-io
2.2 centOS安装Docker
yum update
yum install -y docker
安装docker-compose
pip install docker-compose
//重启docker
service docker restart
//新版重启docker
systemctl start docker
二、使用Docker
查看docker信息
//查看docker版本
docker version
//显示docker系统的信息
docker info
容器管理
//查看正在运行的容器
docker ps
//查看所有容器
docker ps -a
docker ps -l
//创建一个新的容器
docker run ubuntu echo "hello world"
//创建一个守护式容器在后台运行
docker run -d
//指定端口号
docker run -d -p 8002:80
//运行一个容器
docker start <containerID>
//停止运行某个容器
docker stop <containerID>
//进入正在运行的容器
docker attach <containerID>
docker exec -it <container> bash
//解决进入容器不能输入中文的问题
docker exec -it <container> env LANG=C.UTF-8 bash
//删除容器
docker rm <containerID>
//停止所有容器
docker stop $(docker ps -q)
//删除所有容器
docker rm $(docker ps -aq)
//查看容器的IP
docker inspect <containerName> | grep IPAddress
//下载组件
docker run learn/tutorial apt-get install -y ping
//查看端口映射
iptables -t nat -nL
//查看容器所有参数
docker inspect <容器ID>
//获得容器IP
docker inspect cocky_hermann | grep IPAddress
//将容器的8000端口映射到docker主机的8001端口
iptables -t nat -A DOCKER -p tcp --dport 8080 -j DNAT --to-destination 172.17.0.2:8000
镜像管理
//检索镜像 ubuntu、learn/ping、nginx
docker search image_name
//下载镜像
docker pull image_name
//显示所有镜像
docker images
//删除镜像
docker rmi <imageID>
docker rmi -f <imageID>
//删除所有none镜像
docker rmi $(docker images | grep "none" | awk '{print $3}')
//删除所有镜像
docker rmi $(docker images -q)
//打包镜像
docker save -o python-achievements-image.tar.gz <imageName>
//加载镜像
docker load -i python-achievements-image.tar.gz
docker hub
//登录docker hub,输入用户名userName密码登录
docker login
//退出
docker logout
//命名镜像
docker tag <imageName> <userName>/<imageName>
//发布镜像,在docker hub创建仓库imageName
//构建镜像。将某个容器提交到本地仓库。无需拷贝完整的id,通常来讲最开始的三至四个字母即可区分
docker commit <containerId> <userName>/<imageName>
//将本地仓库推送到远程仓库
docker push <userName/imageName>
//发布镜像后,镜像保存在自己的用户名下,根据用户名可查询所有镜像,然后pull相应的镜像
docker search coldchains
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
coldchains/python_achievements 0
coldchains/python-mysql 0
在容器中的操作
//退出容器并关闭
exit
//退出容器不关闭
control+P+Q
//使用apt-get下载组件
apt-get update
apt-get -y install python3-pip
pip3 install django
pip3 install mysql-python
apt-get -y install git
错误处理
在下载镜像的时候报错 Pulling repository ubuntu Tag latest not found in repository ubuntu,需要修改镜像源,换成国内的镜像源
//创建文件
vi /etc/docker/daemon.json
//添加以下内容,保存
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
//重启docker
官方docker hub访问非常的慢,安装之后最好先切换国内镜像:执行:
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://ef017c13.m.daocloud.io
然后再重启:systemctl restart docker
在Ubuntu中安装mysql后,后来通过mysql -u用户名 -p密码 的命令连接Mysql数据库时,报错"can't connect to local mysql serverthrough socket'/var/run/mysqld/mysqld.sock'"
解决方法:
在不重新安装mysql的情况下,通过如下命令来解决,具体的就是先停止mysql服务,再重新开启mysql服务
cd /etc/init.d
sudo service mysql stop
sudo service mysql start
//卸载
sudo apt-get autoremove --purge mysql-server
sudo apt-get remove mysql-common //用于彻底删除
//安装
sudo apt-get install mysql-server
//输入mysql密码
sudo apt-get install mysql-client