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