title: Suse Linux 12 Docker安装
date: 2018-07-01 16:01:33
categories:

  • Linux
  • Linux
    tags: [linux,linux]

安装环境及版本:

一 安装

  • Ubuntu 18
    1. # 1: 安装必要的一些系统工具
    2. sudo apt-get update
    3. sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
    4. # 2: 安装GPG证书
    5. curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    6. # 3: 写入软件源信息
    7. sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
    8. # 4: 更新并安装Docker-CE
    9. sudo apt-get -y update
    10. sudo apt-get -y install docker-ce
  • CentOS 7.4
    #1 卸载已经安装的Docker
    sudo 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 添加阿里镜像
    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    #3 查看可以安装的docker版本
    yum list docker-ce --showduplicates
    #4 安装
    sudo yum install docker-ce-18.03.1.ce
    

sudo zypper dist-upgrade sudo zypper update sudo zypper install docker



<a name="Nt0yj"></a>
## 二 配置

-  docker tab 不提示问题 
```shell
yum install -y bash-completion
source /usr/share/bash-completion/bash_completion
  • docker 内部 apt源更换
    docker exec -it xxx bash
    #清华源
    sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
    #阿里源
    sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
    sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list
    apt-get clean
    
  • 基础命令 ```shell

    启动 停止 重启 docker服务

    sudo service docker start|stop|restart

    查看docker配置信息

    docker info

docker 命令

docker search 关键字 eg:docker search redis,检索镜像(一般从docker hub检索) docker pull 镜像名:tag 拉去镜像 docker images 镜像列表 docker container ls 列表所有的容器 docker rmi image-id 删除指定镜像 docker rm container-id 删除指定容器 docker ps 查看运行中的容器 -a 查看所有容器 docker start/stop container-id||container-name 开启/停止 指定容器id或者容器名称的容器 docker version 版本信息



-  配置国内镜像 
```shell
#1.不存在则新建daemon.json
vim /etc/docker/daemon.json
#2.内容是{}
{
    "registry-mirrors": ["https://4oekmmf9.mirror.aliyuncs.com"]
}
#3.重启docker服务并查看
docker info

三 常用镜像

  • hello world
    docker run hello-world
    
  • nginx
    容器的ip和宿主的ip地址是不一样的,端口转发需将localhost改为宿主机的ip ```shell

    拉取镜像

    docker pull nginx:latest docker run —name nginx -p 80:80 -d nginx:latest

    -name nginx:容器名称

    -d 后台运行

    -p 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口

复制容器内文件到外部

docker cp nginx:/etc/nginx/ /data/ docker stop nginx docker rm nginx

删除后再次启动以挂载路径

docker run —name nginx -v /data/nginx:/etc/nginx -p 80:80 -d nginx:latest http://ip:80

<br />样例  

-  jenkins 
```shell
#拉取镜像
docker pull jenkinsci/blueocean
#运行
docker run \
  -u root \
  --name jenkins \
  -d \
  -p 8080:8080 \
  -v jenkins-data:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  jenkinsci/blueocean


增加访问地址的前缀(配合nginx转发使用)

  • httpd
    #拉取镜像
    docker pull httpd
    #启动("$PWD":当前路径,root路径访问没有权限)
    docker run -dit --name httpd -p 9001:80 -v "$PWD":/usr/local/apache2/htdocs/ httpd:latest
    # -dit: 后台交互运行
    
  • mysql/mariadb
    docker pull mariadb:10.5.4
    #启动(-p 主机(宿主)端口:容器端口)
    docker run --name mariadb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -v /data/mariadb/data:/var/lib/mysql -d mariadb:10.5.4