docker 安装
移除已安装的docker
1
| $ sudo apt-get remove docker docker-engine docker.io
|
先安装必要的系统工具
1 2 3 4 5 6
| $ sudo apt-get update $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common
|
安装证书(任选其一)
1 2 3 4 5 6 7 8
| # 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 (外网)
|
添加软件源信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| $ 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
1 2 3 4
| $ sudo apt-get update $ sudo apt-get install docker-ce
|
查看docker版本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| $ 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镜像源
1 2 3 4 5 6 7 8
| $vim /etc/docker/daemon.json { "registry-mirrors": [ "https://mirror.ccs.tencentyun.com" ] } $ sudo systemctl daemon-reload $ sudo service docker restart
|
部分国内加速镜像列表
docker使用
命令总结
1 2 3 4 5 6 7 8
| $ docker pull/push # 拉取/推送镜像 $ docker run # 运行容器 $ docker images # 本地镜像列表 $ docker ps -a # 正在运行的镜像 -a:所有 $ docker stop [id] # 停止id这个容器 $ docker rm [id] # 移除id容器 $ docker rmi [name] # 移除name镜像
|
拉取容器镜像
1 2
| $ docker pull mysql:5.6 $ docker pull wordpress:latest
|
运行容器镜像
1 2
| $ 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 命令 后面还可以加上需要执行的命令及参数,如下
1
| $ 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
进入容器操作
1 2
| $ docker exec [OPTIONS] [容器id]] [执行命令] [参数]
|
Options:
-d :分离模式: 在后台运行
-t :分配一个伪终端
demo:
1 2 3 4 5
| $ docker ps CONTAINER ID IMAGE 197489c2c175 wordpress $ docker exec -it 1974 /bin/bash #进入1974容器执行bash命令 root@197489c2c175:/var/www/html#
|
容器与宿主机互相复制文件
1 2 3 4 5
| # 从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/
|