您的位置:首页 > 运维架构 > Docker

Docker的安装和使用

2018-01-02 16:00 363 查看
登录远程服务器: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 h
d7e6
ttp://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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: