笔记
安装教程参考
https://yeasy.gitbook.io/docker_practice/install/ubuntu
官方文档
https://docs.docker.com/engine/install/ubuntu/
快捷命令
Docker服务重启
sudo systemctl daemon-reload
sudo systemctl restart docker
停止所有容器
sudo docker stop $(docker ps -a -q)
删除所有容器
sudo docker rm $(docker ps -a -q)
强制删除所有镜像
sudo docker rmi -f $(docker images -q)
删除所有数据卷
docker volume rm $(docker volume ls |awk '{print $2}')
Docker中安装PHP扩展
PHP Core Extensions
We provide the helper scripts docker-php-ext-configure
, docker-php-ext-install
, and docker-php-ext-enable
to more easily install PHP extensions.
可利用 docker-php-ext-install 方式安装的扩展列表
**Possible values for ext-name: bcmath bz2 calendar ctype curl dba dom enchant exif fileinfo filter ftp gd gettext gmp hash iconv imap interbase intl json ldap mbstring mysqli oci8 odbc opcache pcntl pdo pdo_dblib pdo_firebird pdo_mysql pdo_oci pdo_odbc pdo_pgsql pdo_sqlite pgsql phar posix pspell readline recode reflection session shmop simplexml snmp soap sockets sodium spl standard sysvmsg sysvsem sysvshm tidy tokenizer wddx xml xmlreader xmlrpc xmlwriter xsl zend_test zip
usage: /usr/local/bin/docker-php-ext-install [-jN] ext-name [ext-name …] ie: /usr/local/bin/docker-php-ext-install gd mysqli /usr/local/bin/docker-php-ext-install pdo pdo_mysql /usr/local/bin/docker-php-ext-install -j5 gd mbstring mysqli pdo pdo_mysql shmop
PECL extensions
RUN pecl install redis-4.0.1 \
&& pecl install xdebug-2.6.0 \
&& docker-php-ext-enable redis xdebug
Docker国内镜像
- DaoCloud镜像站
- 阿里云加速器(需登录账号获取)
- 网易云加速器
https://hub-mirror.c.163.com
踩坑记录
停止容器报错
异常数据
Error response from daemon: cannot stop container: 252e0e3ac36a: Cannot kill container 252e0e3ac36a17d41515e272053400bc7a7052871fd302960454a04133d2e3df: unknown error after kill: docker-runc did not terminate sucessfully: container_linux.go:393: signaling init process caused “permission denied” : unknown
解决办法
1、sudo killall docker-containerd-shim
或 sudo killall containerd-shim
2、sudo systemctl restart docker
权限不足
现状
每次都要sudo,用其他管理工具管理Docker也会提示如下
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/json: dial unix /var/run/docker.sock: connect: permission denied
解决办法
其实这是我们在安装的时候没在最开始就设置好用户组,导致后续使用麻烦
退出终端,不想重新登录用户,可以试试使用命令 newgrp
切换到其他用户组访问,如: newgrp docker
这个问题也可以参考 Docker Docs:Manage Docker as a non-root user 的官方解释。