Docker相关
一、安装
在 Ubuntu 22.04 LTS 中安装:
1、更新 Ubuntu(用的是清华源)
$ sudo apt update
$ sudo apt upgrade
$ sudo apt full-upgrade
2.添加 Docker 库
首先,安装必要的证书并允许 apt 包管理器使用以下命令通过 HTTPS 使用存储库:
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
然后运行下列命令添加 Docker 的官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
添加 Docker 官方库:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
使用命令更新 Ubuntu 源列表:
sudo apt update
3.安装docker
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
二.docker命令
1.安装完成后,使用以下命令启动docker
systemctl start docker //开启
systemctl status docker //查看状态
sudo docker version //查看版本
例子:
$:sudo docker version
Client: Docker Engine - Community
Version: 23.0.1
API version: 1.42
Go version: go1.19.5
Git commit: a5ee5b1
Built: Thu Feb 9 19:47:01 2023
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 23.0.1
API version: 1.42 (minimum version 1.12)
Go version: go1.19.5
Git commit: bc3805a
Built: Thu Feb 9 19:47:01 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.18
GitCommit: 2456e983eb9e37e47538f59ea18f2043c9a73640
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
docker-init:
Version: 0.19.0
GitCommit: de40ad0
2.镜像
docker images //查看镜像
docker search ubuntu //搜索镜像
sudo docker pull ubuntu:22.04 //拉取镜像
docker rmi 镜像ID //删除镜像
3.容器
sudo docker ps //查看在运行容器
sudo docker ps -a //查看所有容器,包括没有运行的
sudo docker ps -l //查看最后运行容器
sudo docker ps -f status=exited //查看停止的容器
(1)交互方式创建容器,即创建容器后就进入到容器里
sudo docker run -it --name=ubuntu01 ubuntu:22.04 /bin/bash
-i表示运行容器
-t表示容器启动后会进入其命令行,加入这两个参数后容器创建就能登陆进去,即分配一个伪终端
--name为创建的容器命名
-d创建一个守护式容器在后台运行
-p表示端口映射
(2)守护式容器在后台运行创建
sudo docker run -id --name=ubuntu02 ubuntu:22.04
sudo docker exec -it c1d3b973dd70 /bin/bash //进入其容器命令行
(3)相关命令
docker stop 5fec76764085 //停止容器运行 5fec76764085为CONTAINER ID
docker start 5fec76764085 //容器运行
docker cp 文件名 5fec76764085:/usr/local/ //复制文件到容器里
sudo docker inspect --format='{{.NetworkSettings.IPAddress}}' c1d3b973dd70 //查看容器IP
(4)Nginx部署
sudo docker pull nginx
sudo docker run -di --name=mynginx -p 80:80 nginx
(5)配置国内Docker镜像加速
创建/etc/docker/daemon.json文件(默认不存在)
{ "registry-mirrors": [ "https://ung2thfc.mirror.aliyuncs.com", "https://registry.docker-cn.com", "http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn" ] }
重新加载并重启
sudo systemctl daemon-reload
sudo systemctl restart docker
(6) WordPress部署
拉取WordPress和mysql
docker pull wordpress:latest
docker pull mysql:5.6
使用Mysql镜像运行容器
docker run -d --privileged=true --name OLDMysql -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -p 33306:3306 mysql:5.6
参数说明:
-
-p: 端口映射,33306表示宿主,3306表示容器中的端口。 这里表示将宿主机的33306映射给镜像的3306.
-
-e: 环境变量, 环境变量和具体的Docker容器制作时设置有关,这里表示设置镜像中MySQL的root 密码时123456
-
--name: 容器名称
-
--privileged=true: CentOS系统下的安全Selinux禁止了一些安全权限,导致MySQL容器在运行时会因为权限不足而报错,所以需要增加该选项
-
-v: 指定数据卷,也就是将我们MySQL容器的
/var/lib/mysql
映射到宿主机的/data/mysql
运行后使用 docker ps -a 查看运行状况,如果出现错误,使用 docker stop 容器名 停止运行,然后用 docker rm 容器名 删除容器。如图这里的容器名是 OLDMysql。
之后使用上面的命令,去掉 -d 选项重新运行排查错误。
运行wp
docker run -d --name OLDwp -e WORDPRESS_DB_HOST=mysql -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=123456 -e WORDPRESS_DB_NAME=myword -p 1080:80 --link OLDMysql:mysql wordpress
-
-e WORDPRESS_DB_HOST : 链接的docker的MySQL的IP地址和端口,一般设置成mysql表示用默认的设置
-
-e WORDPRESS_DB_USER : 以什么用户使用MySQL,默认是root
-
-e WORDPRESS_DB_PASSWORD : 这设置MySQL的登录用户密码,由于上一项是默认的root,所以这一项和之前的"MYSQL_ROOT_PASSWORD“要相同。
-
-e WORDPRESS_DB_NAME: 数据库的表名,如果不写这一个配置,默认为”wordpress"
-
注意 --link 链接到MySQL容器的名称
备注:容器的80端口映射给主机的1080,不需要用到root权限,但CentOS默认的防火墙禁止了大于1000后的所有端口,所以要开启这个端口