Docker笔记1-安装以及使用
docker 安装
移除已安装的docker
$ sudo apt-get remove docker docker-engine docker.io
先安装必要的系统工具
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
安装证书(任选其一)
# docker官方
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# aliyun 替换为:http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg
# 腾讯云 替换为:http://mirrors.tencentyun.com/docker-ce/linux/ubuntu/gpg (内网)
# 腾讯云 替换为:http://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu/gpg (外网)
添加软件源信息
$ echo \
"deb [arch=amd64 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
# 镜像可以换成阿里云的
# https://download.docker.com/linux/ubuntu
# http://mirrors.aliyun.com/docker-ce/linux/ubuntu
# 腾讯云:内网 外网
# http://mirrors.tencentyun.com/docker-ce/linux/ubuntu
# http://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu
# stable 是稳定版 可以最后添加 edge (每月版) 和 testing (测试版)
安装docker-ce
$ sudo apt-get update
$ sudo apt-get install docker-ce
查看docker版本
$ docker version
Client: Docker Engine - Community
Version: 20.10.5
API version: 1.41
Go version: go1.13.15
Git commit: 55c4c88
Built: Tue Mar 2 20:18:05 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.5
API version: 1.41 (minimum version 1.12)
Go version: go1.13.15
Git commit: 363e9a8
Built: Tue Mar 2 20:16:00 2021
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.4
GitCommit: 05f951a3781f4f2c1911b05e61c160e9c30eaa8e
runc:
Version: 1.0.0-rc93
GitCommit: 12644e614e25b05da6fd08a38ffa0cfe1903fdec
docker-init:
Version: 0.19.0
GitCommit: de40ad0
更换docker镜像源
$vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
]
}
$ sudo systemctl daemon-reload
$ sudo service docker restart
部分国内加速镜像列表
- docker:https://registry.docker-cn.com
- 中科大:https://docker.mirrors.ustc.edu.cn
- 腾讯:https://mirror.ccs.tencentyun.com
- 阿里:需要自己申请地址
- 网易:http://hub-mirror.c.163.com
docker使用
命令总结
$ docker pull/push # 拉取/推送镜像
$ docker run # 运行容器
$ docker images # 本地镜像列表
$ docker ps -a # 正在运行的镜像 -a:所有
$ docker stop [id] # 停止id这个容器
$ docker rm [id] # 移除id容器
$ docker rmi [name] # 移除name镜像
拉取容器镜像
$ docker pull mysql:5.6
$ docker pull wordpress:latest
运行容器镜像
$ docker run --name wp-mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.6
$ docker run --name wp-wp --link wp-mysql -p 8080:80 -d wprdpress
–name : 容器命名
-e : 配置环境变量
-d : 让容器在后台运行
-p : 端口映射( 外部端口:内部端口 )
-i-t : 不清楚,一般都是两个一起加( -it ) -v : 挂载目录( 本地目录绝对路径:容器内目录 ) -w : 设置工作目录,执行命令时的当前目录 run 命令 后面还可以加上需要执行的命令及参数,如下
$ docker run --name my-node -d -it -v E:/develop/docker/:/home/node -p 8081:8888 -w /home/node node:6.11.3 /usr/local/bin/node ./hello.js
上面的命令就是启动node6.11.3镜像,并且命名为my-node,将(windows)宿主机E:/develop/docker/挂载到容器/home/node目录,并设置为工作目录,创建容器后执行/usr/local/bin/node命令运行/home/node/hello.js
进入容器操作
$ docker exec [OPTIONS] [容器id]] [执行命令] [参数]
Options:
-d :分离模式: 在后台运行
-t :分配一个伪终端
demo:
$ docker ps
CONTAINER ID IMAGE
197489c2c175 wordpress
$ docker exec -it 1974 /bin/bash #进入1974容器执行bash命令
root@197489c2c175:/var/www/html#
容器与宿主机互相复制文件
# 从docker容器复制到E盘根目录
$ docker cp 19748:/var/www/html/wp-includes/script-loader.php /etc/home/ubuntu/docker/
# 从E盘根目录复制script-loader.php到docker容器/var/www/html/wp-includes
$ docker cp /etc/home/ubuntu/docker/test.txt 19748:/var/www/html/wp-includes/