Docker安装及容器创建

1、Docker简介

1.1、安装Docker

1).设置存储库
安装yum-utils软件包(提供yum-config-manager 实用程序)并设置稳定的存储库。
 
sudo yum install -y yum-utils
 
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo	
 
或者使用阿里云 源地址
sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
	
(2).安装DOCKER引擎
安装最新版本的Docker Engine和容器:
 
sudo yum install docker-ce docker-ce-cli containerd.io

1.2、查看Docker版本   

#查看docker版本
docker -v docker version

1.3、Docker常用命令

#启动docker
systemctl start docker

#查看Docker状态    
systemctl status docker

#重启docker
sudo systemctl restart docker

#停止docker
sudo systemctl stop docker

#设置开机自启动
systemctl enable docker

#查看所有镜像
docker images

#删除指定镜像
docker rmi IMAGE_ID

#查看所有已创建的镜像
docker ps

#启动某个容器
docker start 容器名称

#停止某个容器
docker stop 容器名称

#退出某个容器
exit

#删除某个容器
docker rm 容器id

1.4、卸载旧版docker

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
 
或者使用以下方法
 
列出docker安装过的相关包:
sudo yum list installed | grep docker
 
删除相关安装包
sudo yum -y remove docker-ce.x86_64
sudo yum -y remove docker-ce-selinux.noarch
 
删除相关的镜像与容器
sudo rm -rf /var/lib/docker
 
sudo yum remove docker  docker-common docker-selinux docker-engine

1.5.docker run参数说明

-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
 
-d: 后台运行容器,并返回容器ID;
 
-i: 以交互模式运行容器,通常与 -t 同时使用;
 
-P: 随机端口映射,容器内部端口随机映射到主机的端口
 
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
 
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
 
--name="nginx-lb": 为容器指定一个名称;
 
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
 
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
 
-h "mars": 指定容器的hostname;
 
-e username="ritchie": 设置环境变量;
 
--env-file=[]: 从指定文件读入环境变量;
 
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
 
-m :设置容器使用内存最大值;
 
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
 
--link=[]: 添加链接到另一个容器;
 
--expose=[]: 开放一个端口或一组端口;
 
--volume , -v:	绑定一个卷

2、Docker获取portainer镜像,安装 portainer容器

#查询镜像
docker search portainer

#拉取镜像
docker pull portainer/portainer:latest

#运行容器

docker run -d  --name portainer  -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock --restart always --privileged=true portainer/portainer

#访问:
通过浏览器输入http://ip:9000即可访问portainer

  

3、Docker获取jenkins镜像,安装 jenkins容器

#查询镜像
docker search jenkins

#拉取镜像
docker pull jenkins/jenkins:lts

#创建一个jenkins目录
mkdir /home/jenkins_home

#运行容器

docker run  --name jenkins\
	 -u root\
	 -d\
	 -p 8061:8080\
	 -p 50000:50000\
	 -v /usr/bin/docker:/usr/bin/docker:Z \
	 -v /var/run/docker.sock:/var/run/docker.sock:Z \
	 -v /etc/sysconfig/docker:/etc/sysconfig/docker:Z \
	 -v /opt/software/jdk1.8.0_201:/opt/software/jdk1.8.0_201:Z \
	 -v /opt/software/apache-maven-3.6.3:/opt/software/apache-maven-3.6.3:Z \
	 -v /opt/software/maven-repo:/opt/software/maven-repo:Z \
	 -v /home/jenkins_home:/var/jenkins_home:Z   \
	 --restart=always  \
	 --privileged=true \
         jenkins/jenkins:lts

#查看jenkins运行状态

docker ps | grep jenkins

#进入jenkins容器内部
docker exec -it jenkins_01 bash

#访问
通过浏览器输入http://ip:8061即可访问jenkins

4、Docker获取svn镜像,安装 svn容器

#查询镜像
docker search svn

#拉取镜像
docker pull garethflowers/svn-server:latest 


#运行容器

docker run --privileged=true  --restart always --name svn -d -v /root/dockers/svn:/var/opt/svn -p 3690:3690 garethflowers/svn-server 


#查看jenkins运行状态

docker ps | grep jenkins

#进入容器内部
docker exec -it svn /bin/sh

#创建仓库
svnadmin create project

#查看svn位置
/root/dockers/svn/project

5、Docker获取tomcat镜像,安装 tomcat容器

#查询镜像
docker search tomcat

#拉取镜像
docker pull tomcat:7-jre7


#运行容器

docker run -di --name jenkins_tomcat -p 9000:8080 -v /usr/local/myhtml:/usr/local/tomcat/webapps --privileged=true tomcat:7-jre7


#进入容器内部
docker exec -it jenkins_tomcat /bin/bash

#将tomcat中webapps.dist复制到宿主机/usr/local/myhtml中并改名为webapps
cd /usr/local/myhtml
docker cp jenkins_tomcat:/usr/local/tomcat/webapps.dist webapps

6、Docker获取mysql镜像,安装 mysql容器

#查询镜像
docker search mysql

#拉取镜像
docker pull mysql:5.7

#运行容器
docker run -d --name mysql57 \
-p 3306:3306 \
-v /home/mysql57/conf:/etc/mysql/mysql.conf.d  \
-v /home/mysql57/logs:/logs \
-v /home/mysql57/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=dzp_dream  \
-e TZ=Asia/Shanghai \
--restart always  \
mysql:5.7 \
--lower_case_table_names=1 \
--default-time_zone='+8:00'


#进入容器内部
docker exec -it mysql57 /bin/bash

#登录mysql
mysql -u root -p

7、Docker获取nginx镜像,安装 nginx容器

#查询镜像
docker search nginx

#拉取镜像
docker pull nginx:latest

#运行容器
docker run -d --name newnginx \
-p 80:80 \
-v /nginx/html:/usr/share/nginx/html:ro  \
-v  /nginx/conf/conf.d:/etc/nginx/conf.d  \
-v /nginx/logs:/var/log/nginx \
nginx

#进入容器内部
docker exec -it newnginx /bin/bash

  

8、Docker获取redis镜像,安装 redis容器

#查询镜像
docker search redis

#拉取镜像
docker pull redis:latest

#创建redis容器,并设置密码
docker run -d --name myredis -p 6379:6379 redis:latest --requirepass "dzp_dream"


#进入容器内部
docker exec -it myredis /bin/bash

9、Docker获取zookeeper镜像,安装 zookeeper容器

#查询镜像
docker search zookeeper

#拉取镜像
docker pull docker.io/wurstmeister/zookeeper

#创建redis容器,并设置密码
docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper


#进入容器内部
docker exec -it zookeeper /bin/bash

  

10、Docker获取kafka镜像,安装 kafka 容器

#查询镜像
docker search kafka

#拉取镜像
docker pull docker.io/wurstmeister/kafka:2.12-2.1.0

#创建容器
docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=172.17.0.5:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.189.130:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka:2.12-2.1.0


#进入容器内部
docker exec -it kafka /bin/bash 

11、Docker获取postgresql+postgis镜像,安装 postgresql+postgis容器

#查询镜像
docker search postgresql

#拉取镜像
docker pull kartoza/postgis:11.0-2.5

#创建容器
docker run -t --name postgresql --restart always  -e POSTGRES_USER='postgres' -e POSTGRES_PASSWORD=dzp_dream -e ALLOW_IP_RANGE=0.0.0.0/0 -p 5432:5432 -d kartoza/postgis:11.0-2.5


#进入容器内部
docker exec -it postgresql /bin/bash

12、Docker获取MinIO镜像,安装 MinIO容器

#查询镜像
docker search minio

#拉取镜像
docker pull minio/minio

#创建容器
docker run -d -p 9001:9000 --name minio \
-e "MINIO_ACCESS_KEY=minio" \
-e "MINIO_SECRET_KEY=dzp_dream" \
-v /opt/app/cloud/minio/data:/data \
-v /opt/app/cloud/minio/config:/root/.minio \
minio/minio server /data

#进入容器内部
docker exec -it minio /bin/bash

13、Docker获取gitlab镜像,安装 gitlab容器

#查询镜像
docker search gitlab

#拉取镜像
docker pull gitlab/gitlab-ce

#创建容器
docker run -d \
-p 8443:443 \
-p 80:80 \
-p 222:22 \
--name gitlab \
--restart always \
--hostname  192.168.189.130 \
-v /home/gitlab/config:/etc/gitlab:Z  \
-v /home/gitlab/logs:/var/log/gitlab:Z  \
-v /home/gitlab/data:/var/opt/gitlab:Z \
gitlab/gitlab-ce

#进入容器内部
docker exec -it gitlab /bin/bash

  

14、Docker获取Nacos镜像,安装 Nacos容器

#查询镜像
docker search nacos/nacos-server
 
#拉取镜像
docker pull nacos/nacos-server

#创建容器
docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server

#进入容器内部
docker exec -it nacos /bin/bash

15、Docker获取elasticsearch镜像,安装 elasticsearch容器

#查询镜像
docker search elasticsearch
 
#拉取镜像
docker pull elasticsearch

#创建容器
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name ES01 docker.io/elasticsearch


#进入容器内部
docker exec -it elasticsearch /bin/bash

  

16、Docker获取RabbitMQ镜像,安装 RabbitMQ容器

#查询镜像
docker search rabbitmq:management
 
#拉取镜像
docker pull rabbitmq:management

#创建容器
docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 docker.io/rabbitmq:management


#进入容器内部
docker exec -it rabbit /bin/bash

17、Docker获取私有仓库registry镜像,安装 registry容器

#查询镜像
docker search registry 
 
#拉取镜像
docker pull registry 

#创建容器
docker run --name=registry -p 5000:5000 -di registry


#进入容器内部
docker exec -it registry /bin/bash

#修改配置文件
 vim /etc/docker/daemon.json
添加如下内容:
{
	"insecure-registries":["192.168.1.175:5000"]
}

#使其生效并重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker

18、Docker获取Memcached镜像,安装 Memcached容器

#查询镜像
docker search memcached 
 
#拉取镜像
docker pull memcached

#创建容器
docker run -d --name mymemcache -p 11211:11211  memcached

#Memcached相关操作
telnet 127.0.0.1 11211
 
set test 0 900 9
memcached
STORED
 
get test 
VALUE test 0 9
memcached
 
END
 
quit

19、Docker获取MongoDB镜像,安装MongoDB容器

#查询镜像
docker search mongo
 
#拉取镜像
docker pull mongo:latest

#创建容器
docker run -itd --name mymongo -p 27017:27017 mongo --auth

#进入容器,并设置密码
docker exec -it mymongo mongo admin
# 创建一个名为 admin,密码为 123456 的用户。
>  db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '123456')

 

20. 查看所有容器

通过浏览器输入http://ip:9000即可访问portainer

 

posted @ 2020-12-20 23:31  漠漠颜  阅读(428)  评论(0编辑  收藏  举报