docker简介及安装常用开发软件

Posted lixianguo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker简介及安装常用开发软件相关的知识,希望对你有一定的参考价值。

简介

Docker 是一个开源的应用容器引擎,可以看做是一个轻量的、可移动的虚拟机,里面可以装载一个个的程序镜像,当把程序安装在docker以后,我们可以把docker移植到另外一台服务器,这样就避免了很多安装如redis,mysql等软件的重复性工作,以及不必重复部署项目到服务器,只需要移植docker即可。

卸载旧版本

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

安装 Docker Engine-Community

使用 Docker 仓库进行安装

在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,可以从仓库安装和更新 Docker。

设置仓库

安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。

  yum install -y yum-utils   device-mapper-persistent-data   lvm2

使用以下命令来设置稳定的仓库。

  yum-config-manager     --add-repo     https://download.docker.com/linux/centos/docker-ce.repo
安装 Docker Engine-Community

yum install docker-ce docker-ce-cli containerd.io

启动docker systemctl start docker

查看docker版本号 docker-v

配置阿里云镜像加速(CnetOS)

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-‘EOF‘
{
  "registry-mirrors": ["阿里云的加速地址"]
}
EOF
systemctl daemon-reload
systemctl restart docker

docker安装mysql

1.拉取mysql镜像 docker pull mysql:5.7
2.创建容器

docker run -p 3306:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

意思是创建一个3306端口,名字为mysql的容器,
-v表示mysql相关文件挂载到外部虚拟机的目录,也就是容器内的文件和虚拟机挂载目录的变化是一致的;修改/mydata/mysql/conf下的配置文件,能影响到容器内部的配置。
-e 表示初始化root账户的密码为root
-d 使用镜像mysql:5.7以后台模式启动一个容器

3.创建mysql配置文件
vi /mydata/mysql/conf/my.cnf

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
init_connect=‘SET collation_connection = utf8_unicode_ci‘
init_connect=‘SET NAMES utf8‘
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

重启 docker restart mysql
进入mysql容器 docker exec -it mysql /bin/bash
查看配置,会发现虚拟机修改的文件在这里被同步了 cat /etc/mysql/my.cnf

docker安装redis

1.拉取redis镜像 docker pull redis
2.创建容器

mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf

docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf

3.运行redis docker exec -it redis redis-cli
4.开启 aof 持久化
vi /mydata/redis/conf/redis.conf
添加如下内容
appendonly yes

docker安装nginx

1.拉取nginx镜像 docker pull nginx
2.创建容器

docker run -p 80:80 --name nginx -v /mydata/nginx/html:/usr/share/nginx/html -v /mydata/nginx/conf/nginx.conf:/etc/nginx/conf/nginx.conf -v /mydata/nginx/log:/var/log/nginx/ -v /mydata/nginx/conf.d:/etc/nginx/conf.d -d nginx

3.添加配置vim /mydata/nginx/conf/nginx.conf

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                    ‘$status $body_bytes_sent "$http_referer" ‘
                    ‘"$http_user_agent" "$http_x_forwarded_for"‘;

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

vim /mydata/nginx/conf.d/default.conf

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

 }

4.在/mydata/nginx/html中添加一个html页面显示

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
</head>
<body>
<h1>hello docker!</h1>
</body>
</html

然后重启nginx即可

docker安装zookeeper

1.拉取zookeeper镜像 docker pull wurstmeister/zookeepe
2.运行zookeeper环境 docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
3.进入zookeeper容器 docker exec -it zookeeper /bin/bash
4.切换到bin目录 cd bin
5.查看zookeeper是否启动 ./zkServer.sh status,出现 Mode:standalone 则表示成功了,然后输入exit退出即可
技术图片

docker安装kafka

需要先安装zookeeper

1.拉取kafka镜像 docker pull nginx
2.运行kafka环境

docker run --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=zookeeper的ip:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka的ip:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -d wurstmeister/kafka

第二行是映射的端口
第三行是在kafka集群中,每个kafka都有一个BROKER_ID来区分自己,在这里设置
第四行配置zookeeper管理kafka的路径
第五行把kafka的地址端口注册给zookeeper
第六行配置kafka的监听端口

3.进入kafka容器 docker exec -it kafka /bin/bash
4.创建主题
/opt/kafka/bin/kafka-topics.sh --create --zookeeper zookeeper的ip:2181 --replication-factor 1 --partitions 1 --topic my_log
5.查询创建主题
/opt/kafka/bin/kafka-topics.sh --list --zookeeper zookeeper的ip:2181

docker命令

1.启动docker systemctl start docker

2.关闭docker systemctl stop docker

3.重启docker systemctl restart docker

4.查看docker状态(是否启动) systemctl status docker

5.查看docker版本号 docker-v

6.查看docker安装的所有镜像 docker images

7.docker开机自启动 systemctl enable docker

8.显示所有的容器,包括未运行的 docker ps -a

9.显示已启动的容器 docker ps

10.进入容器 docker exec -it 容器名 /bin/bash

11.docker启动时容器自启动 docker update --restart=always 容器名

12.docker启动时取消容器自启动 docker update --restart=no 容器名

13.删除镜像 docker rmi 镜像ID

14.删除容器 docker rm 容器名

15.开启容器 docker start 容器名

16.关闭容器 docker stop 容器名

17.重启容器 docker restart 容器名

18.拉取镜像 docker pull 容器名




























以上是关于docker简介及安装常用开发软件的主要内容,如果未能解决你的问题,请参考以下文章

Docker For Windows 安装配置及常用维护

Docker 核心概念安装端口映射及常用操作命令,详细到令人发指。

docker 的简介安装以及常用命令

Docker简介及安装配置详解

Docker的简介及安装

Docker的安装 与 环境配置 及 阿里云镜像仓库配置常用命令等