Doker的安装以及基本使用

1.docker官方源安装

第一种:

CentOS
   如果是centos,上面的安装命令会在系统上添加yum源:/etc/yum.repos.d/docker-ce.repo 
   # wget https://download.docker.com/linux/centos/docker-ce.repo
   # mv docker-ce.repo /etc/yum.repos.d
   # yum install -y docker-ce

 第二种:直接rpm安装

wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-17.09.0.ce-1.el7.centos.x86_64.rpm


yum localinstall docker-ce-17.09.0.ce-1.el7.centos.x86_64.rpm

2.国内源安装新版本docker

2.1 删除已经安装的docker

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

2.2 配置阿里云Docker Yum源

#下载一些工具
[root@docker ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 git
#docker源
[root@docker ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#查看Doker版本
[root@docker ~]# yum list docker-ce --showduplicates


安装较旧版本(比如Docker 17.03.2) :
        需要指定完整的rpm包的包名,并且加上--setopt=obsoletes=0 参数:
        # yum install -y --setopt=obsoletes=0 \
        docker-ce-17.03.2.ce-1.el7.centos.x86_64 \
        docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch


安装Docker新版本(比如Docker 18.03.0):
        加上rpm包名的版本号部分或不加都可以:
        # yum install docker-ce-18.03.0.ce  -y
        或者
        # yum install docker-ce -y

启动Docker服务:
    #systemctl enable docker
    #systemctl start docker


查看docker版本状态: 
    # docker -v

查看docker运行状态:
    # docker info

如果有以下报错信息:

报错1:
    docker info的时候报如下错误
    bridge-nf-call-iptables is disabled

解决1:
    追加如下配置,然后重启系统
    # vim /etc/sysctl.conf   
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    net.bridge.bridge-nf-call-arptables = 1

问题2:
    虚拟机ping百度也能ping通,但是需要等好几秒才出结果,关键是下载镜像一直报错如下
    # docker pull daocloud.io/library/nginx
    Using default tag: latest
    Error response from daemon: Get https://daocloud.io/v2/: dial tcp: lookup daocloud.io on 192.168.1.2:53: read udp   192.168.1.189:41335->192.168.1.2:53: i/o timeout

解决2:
    我的虚拟机用的网关和dns都是虚拟机自己的.1或者.2,把DNS改成8.8.8.8问题就解决了,ping百度也秒出结果
    # vim /etc/resolv.conf
    nameserver 8.8.8.8

3.生产环境docker的环境配置

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://pilvpemn.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
#注意:一定注意编码问题,出现错误---查看命令:journalctl -amu docker 即可发现错误

 3.1国内镜像源

去查看如何使用aliyun的docker镜像库
去查看如何使用网易蜂巢的docker镜像库

Docker 加速器  
使用 Docker 的时候,需要经常从官方获取镜像,但是由于显而易见的网络原因,拉取镜像的过程非常耗时,严重影响使用 Docker 的体验。因此 DaoCloud 推出了加速器工具解决这个难题,通过智能路由和缓存机制,极大提升了国内网络访问 Docker Hub 的速度,目前已经拥有了广泛的用户群体,并得到了 Docker 官方的大力推荐。
如果您是在国内的网络环境使用 Docker,那么 Docker 加速器一定能帮助到您。    

Docker 加速器对 Docker 的版本有要求吗?    
需要 Docker 1.8 或更高版本才能使用,如果您没有安装 Docker 或者版本较旧,请安装或升级。    

Docker 加速器支持什么系统?    
Linux, MacOS 以及 Windows 平台。    

Docker 加速器是否收费?    
DaoCloud 为了降低国内用户使用 Docker 的门槛,提供永久免费的加速器服务,请放心使用。  

国内比较好的镜像源:网易蜂巢、aliyun和daocloud,下面是daocloud配置方式:
Docker Hub并没有在国内部署服务器或者使用国内的CDN服务,因此在国内特殊的网络环境下,镜像下载十分耗时。
为了克服跨洋网络延迟,能够快速高效地下载Docker镜像,可以采用DaoCloud提供的服务Docker Hub Mirror,速度
快很多
1.注册网站账号
2.然后进入你自己的""制台",选择"加速器",点"立即开始",接入你自有的主机,就看到如下的内容了
   curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361XXX.m.daocloud.io
该脚本可以将 --registry-mirror 加入到你的 Docker 配置文件 /etc/docker/daemon.json 中。适用于 Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1,其他版本可能有细微不同。更多详情请访问文档。
   
    
3.配置完成后从Docker Hub Mirror下载镜像,命令:
    #dao pull ubuntu

注1:第一次使用daocloud是配置了加速器的,可以直接使用dao pull centos拉取经过加速之后的镜像,但是后来发现,不使用加速器也可以直接在daocloud官网上找到想要拉取的镜像地址进行拉取,比如:#docker pull 
daocloud.io/library/tomcat:6.0-jre7
注2:上面配置加速器的方法,官网会更新,最新方法你应该根据官网提示去操作。
===========以下为tigerfive亲测================
使用国内镜像:
进入网站:https://hub.daocloud.io/
注册帐号:tigerfive
进入镜像市场:填写搜索的镜像名称


选择第一个

点击右边快速部署:


写入名称,选择我的主机,按提示继续在主机上进行所有操作

# mkdir /docker
# cd /docker
# curl -L -o /tmp/daomonit.x86_64.rpm https://get.daocloud.io/daomonit/daomonit.x86_64.rpm
# rpm -Uvh /tmp/daomonit.x86_64.rpm
# daomonit -token=36e3dedaa2e6b352f47b26a3fa9b67ffd54f5077 save-config
# service daomonit start

出现如下界面:说明自有主机接入完成(注意:这里我用的主机是我自己笔记本上的一台虚拟机)


接下来我们在镜像市场找到一个centos的镜像:点击右面的拉取按钮,会出现拉取命令如下:
我们按命令执行:
    # docker pull daocloud.io/library/centos:7
    出现如下提示:说明拉取成功
    Trying to pull repository daocloud.io/library/centos ... 
    latest: Pulling from daocloud.io/library/centos

    08d48e6f1cff: Pull complete 
    Digest: sha256:934ff980b04db1b7484595bac0c8e6f838e1917ad3a38f904ece64f70bbca040
    Status: Downloaded newer image for daocloud.io/library/centos:latest

3.2 测试拉取镜像源和镜像管理基本操作

[root@docker ~]# docker pull daocloud.io/library/centos:7
7: Pulling from library/centos
75f829a71a1c: Pull complete 
Digest: sha256:fe2347002c630d5d61bf2f28f21246ad1c21cc6fd343e70b4cf1e5102f8711a9
Status: Downloaded newer image for daocloud.io/library/centos:7
daocloud.io/library/centos:7


##查看镜像
[root@docker ~]# docker images
REPOSITORY                   TAG       IMAGE ID       CREATED       SIZE
daocloud.io/library/centos   7         7e6257c9f8d8   3 years ago   203MB

#查看本地镜像 -q 只显示id
[root@docker ~]# docker images list


# 搜索镜像 -f 指定star数量
docker search iname [-f stars=100] 


# 查看镜像的详细信息
docker image inspect iname

#删除镜像
docker rmi iname 

## 删除所有镜像 -f 强制删除,但是实际镜像不会删除
docker rmi  -f $(docker images -q) 

# 查看镜像的制作过程
docker history iname

3.3 容器管理基本操作

容器管理
# 创建容器 -i 标准的输入输出 -t 分配一个虚拟终端 -d 后台运行 --name 指定容器的名字 -p 指定端口映射 -e 指定环境变量
docker run -itd iname # 运行会启动容器
docker create -it iname # 创建容器,但是不启动
# 查看运行中容器,-a 可以查看所有状态
docker ps 
# 删除容器 -f 强制删除
docker rm [-f] cname
# 查看容器的详细信息
docker inspect cname
# 启动
docker start
# 关闭
docker stop
# 重启
docker restart
# 挂起
docker pause
# 恢复
docker unpause
# 强制关闭
docker kill
# 进入容器
docker attach cname # 通过命令进入容器 COMMAND,不常用
docker exec -it cname command # 进入容器,在退出时无需执行ctrl+p+q,不会影响容器运行

# 复制
docker cp cname:path hostpath
# 查看容器内的进程
docker top cname
# 容器使用宿主机资源情况
docker stats [cname]
# 查看容器日志
docker logs cname

# 等待容器关闭返回值
docker wait
# docker 服务日志
docker events

# 展示已经映射的端口
docker port cname

# 查看容器内部的变化
docker diff

4.docker容易管理基本操作实验

#查看镜像
[root@docker ~]# docker images
REPOSITORY                   TAG       IMAGE ID       CREATED       SIZE
daocloud.io/library/centos   7         7e6257c9f8d8   3 years ago   203MB

#使用镜像运行容器(-d为放在后台运行)
[root@docker ~]# docker run -itd daocloud.io/library/centos:7
0260782af99a9013ec1e1607cb5bf3887d0b98fe023dd96c31a468a82a76e0d1

#查看正在运行的容器 (docker ps -a 查看所有容器,不管是否在运行)
[root@docker ~]# docker ps
CONTAINER ID   IMAGE                          COMMAND       CREATED         STATUS         PORTS     NAMES
0260782af99a   daocloud.io/library/centos:7   "/bin/bash"   5 minutes ago   Up 5 minutes             silly_sinoussi

#使用id删除容器
[root@docker ~]# docker rm -f 0260782af99a
0260782af99a

#删除之后查看容器
[root@docker ~]# docker ps 
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@docker ~]# docker ps  -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
!可以看到删除已经删除了

#查看容器详细信息,可以使用id
[root@docker ~]# docker inspect daocloud.io/library/centos:7

#进入容器俩种方式
  [root@docker ~]# docker images
   REPOSITORY                   TAG       IMAGE ID       CREATED       SIZE
   daocloud.io/library/centos   7         7e6257c9f8d8   3 years ago   203MB

  第一种:  不常用
  [root@docker ~]# docker attach 74234eda223c
  [root@74234eda223c /]# 
  

  第二种: 常用
  [root@docker ~]# docker ps
    CONTAINER ID   IMAGE                          COMMAND       CREATED          STATUS          
    PORTS     NAMES
    01e3e19f97dc   daocloud.io/library/centos:7   "/bin/bash"   16 seconds ago   Up 15 
    seconds             goofy_robinson
  [root@docker ~]# docker exec -it 01 /bin/bash
  [root@01e3e19f97dc /]# 
  
  ***使用exec进入时,不管是ctrl+d,还是exit退出容器,都不会关掉容器.

#容器改名
docker rename oldname newname




5.镜像和容器打包及恢复

#导出redis容器,也就是说备份
[root@docker ~]# docker export redis > redis.tar

#将打包好的容器恢复为镜像
[root@docker ~]# docker import redis.tar myredis


#打包镜像
[root@docker ~]# docker save nginx > nginx.tar

#恢复镜像
[root@docker ~]# docker load < nginx.tar 

#以上就是docker的基本操作!

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Docker是一种开源的容器化平台,它能够帮助开发者和运维人员将应用程序及其依赖项打包到一个可移植的容器中,方便在不同的环境中部署和运行。 安装Docker基本操作如下: 1. 首先,在Linux系统中,可以使用以下命令来安装Docker: ``` sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io ``` 2. 安装完成后,可以使用以下命令来验证Docker是否正确安装: ``` docker --version ``` 3. 如果需要使用Docker的命令行工具,可以将当前用户添加到`docker`用户组中: ``` sudo usermod -aG docker $USER ``` 4. 为了使Docker服务在启动时自动启动,可以使用以下命令将其设置为开机自启动: ``` sudo systemctl enable docker ``` 卸载Docker基本操作如下: 1. 首先,停止并删除所有正在运行的容器: ``` docker stop $(docker ps -aq) docker rm $(docker ps -aq) ``` 2. 然后,卸载Docker软件包: ``` sudo apt-get purge docker-ce docker-ce-cli containerd.io ``` 3. 假如希望删除所有与Docker相关的镜像、容器和卷等数据,可以使用以下命令进行清理: ``` sudo rm -rf /var/lib/docker ``` 4. 最后,可以使用以下命令来确认是否成功卸载Docker: ``` docker --version ``` 总结起来,安装Docker只需要几个简单的命令即可完成,卸载Docker也同样简单。通过掌握这些基本操作,你可以更好地进行Docker安装和卸载,并在需要的时候方便地使用Docker进行应用程序的部署和管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值