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