You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
7.5 KiB
7.5 KiB
docker的安装与使用
安装(centos)
-
卸载旧版本
$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
-
安装依赖
yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
-
设置仓库(非必须)
官方源地址(比较慢)
yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
阿里云
yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
清华大学源
yum-config-manager \ --add-repo \ https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
-
安装docker
安装最新版本
yum install docker-ce docker-ce-cli containerd.io
安装指定版本
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
启动docker
systemctl start docker
设置开机启动
systemctl enable docker
停止docker
systemctl stop docker
-
卸载docker
删除安装包
yum remove docker-ce
删除镜像、容器、配置文件等内容,默认路径为:/var/lib/docker,自定义路径为:/etc/docker/daemon.json中data-root属性
使用
-
镜像
获取最新版本镜像
docker pull <镜像名称> docker pull <镜像名称>:latest
获取指定版本
docker pull <镜像名称>:<版本号>
删除镜像
docker rmi <镜像ID>
-
创建与启动容器
创建新容器并启动
docker run -itd --<容器名> <镜像名> <容器内执行的命令>
参数说明
-i: 以交互模式运行容器,通常与 -t 同时使用; -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用; -d: 后台运行容器,并返回容器ID; -p: 指定端口映射,格式为:主机(宿主)端口:容器端口 -v: 挂载宿主机的一个目录到容器,格式为:主机(宿主)目录:容器目录; -e: username="ritchie": 设置环境变量; -m: :设置容器使用内存最大值; --privileged 容器内root用户是否真正拥有root权限 --restart :容器退出是重启策略 no默认值,表示容器退出时,docker不自动重启容器 on-failure 若容器的退出状态非0,则docker自动重启容器,还可以指定重启次数,若超过指定次数未能启动容器则放弃 always 容器退出时总是重启 unless-stopped 容器退出时总是重启,但不考虑Docker守护进程启动时就已经停止的容器 如果容器启动时没有设置–restart参数,则通过下面命令进行更新: docker update --restart=always <容器ID>
停止容器
docker stop <容器ID>
启动容器
docker start <容器ID>
-
进入退出
查看所有容器
docker ps -a
进入容器,attach或exec(推荐使用,退出容器终端容器不会停止)
docker exec -it <容器ID> /bin/bash
进入容器后输入exit 退出容器
-
删除与导入导出
删除容器
docker rm -f <容器ID>
导出容器
docker export <容器ID> > <文件名>
导入容器
cat <文件名> | docker import - <镜像名>
Docker安装其他软件
-
安装mysql
docker pull mysql:5.7.27 docker run -itd --name mysql-server -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.27
-
安装nginx
docker pull nginx docker run -d --name nginx -p 80:80 -v /home/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/logs:/var/log/nginx -v /home/nginx/data:/home nginx
-
安装gitea
docker pull gitea/gitea docker run -d --name gitea --privileged --restart=always -p 122:22 -p 3000:3000 -v /home/gitea/data:/data gitea/gitea
-
安装gitlab
docker search gitlab docker pull twang2218/gitlab-ce-zh docker run -d -p 443:443 -p 280:80 -p 222:22 --name gitlab --privileged --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab twang2218/gitlab-ce-zh
修改gitlab.rb配置文件
external_url "http://gitlab.xumy.vip:28080" nginx['proxy_set_headers'] = { "Host" => "gitlab.xumy.vip:28080" }
-
安装禅道
拉取镜像
docker pull easysoft/zentao:15.7.1
创建网络驱动
docker network create --subnet=172.172.172.0/24 zentaonet
启动容器
sudo docker run --name [容器名] -p [主机端口]:80 --network=[网络驱动名] --ip [容器IP] --mac-address [mac地址] -v [主机禅道目录]:/www/zentaopms -v [主机mysql目录]:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=[数据库密码] -d easysoft/zentao:[镜像标签] 其中,容器名:启动的容器名字,可随意指定; 主机端口:主机端口为web访问端口; 网络驱动名:刚刚创建的网络驱动名; 容器IP:在网络驱动范围内选择一个作为该容器的固定ip; mac地址:指定固定的mac地址,建议范围为02:42:ac:11:00:00 到 02:42:ac:11:ff:ff; 主机禅道目录:必须指定,方便禅道代码、附件等数据的持久化,非升级情况需指定空目录; 主机mysql目录:必须指定,方便禅道数据持久化,非升级情况需指定空目录; 数据库密码: 容器内置mysql用户名为root,默认密码123456,如果不修改可以不指定该变量,如果想更改密码可以设置 MYSQL_ROOT_PASSWORD变量来更改密码;
docker run --name zentao -p 8080:80 --network=zentaonet --ip 172.172.172.2 --mac-address 02:42:ac:11:00:ff -v /home/zentao/pms:/www/zentaopms -v /home/zentao/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d easysoft/zentao:15.7.1
-
安装redis
docker pull redis:latest docker run -d --name redis -p 6379:6379 redis:latest
-
安装masterlab
cd /home git clone https://gitee.com/firego/masterlab-docker.git cd ./masterlab-docker/www git clone https://gitee.com/firego/masterlab.git cd ./masterlab unzip ./vendor.zip docker run -d --name php74 --expose=9000 -p 9000:9000 --link mysql-server:mysql --link redis:redis \ -v /home/masterlab-docker/www/:/var/www/html/ \ -v /home/masterlab-docker/conf/php/php74.ini:/usr/local/etc/php/php.ini \ -v /home/masterlab-docker/conf/php/php-fpm.d/www74.conf:/usr/local/etc/php-fpm.d/www.conf \ -v /home/masterlab-docker/log/php-fpm/:/var/log/php-fpm/ \ gopeak/masterlab:php-fpm-74 docker run -d --name nginx-alpine -p 80:80 -p 443:443 --link php74:fpm74 \ -v /home/masterlab-docker/www/:/var/www/html/ \ -v /home/masterlab-docker/conf/nginx/conf.d:/etc/nginx/conf.d/ \ -v /home/masterlab-docker/conf/nginx/nginx.conf:/etc/nginx/nginx.conf \ -v /home/masterlab-docker/log/nginx/:/var/log/nginx/ \ -e "TZ=Asia/Shanghai" \ nginx:alpine docker run -d -it --rm --name php74-cli \ -p 9002:9002 \ -v /home/masterlab-docker/www/masterlab:/usr/workspaces/project \ -w /usr/workspaces/project \ gopeak/masterlab:php-cli-74 \ php ./bin/swoole_server.php